日本最大級のネットショッピング比較サイト


CentOS7:Webサーバー設定

Webサーバー設定

 

thhpdのインストール

httpd をインストールします。

[root@www ~]# yum -y install httpd

ウェルカムページを削除します。

[root@www ~]# rm -f /etc/httpd/conf.d/welcome.conf

httpd の設定します。

[root@www ~]# vi /etc/httpd/conf/httpd.conf

95行目:行頭の「#」を削除してコメント解除し、サーバー名を指定します。

ServerName centserver.jp:80

151行目:変更します。

AllowOverride All

164行目:ディレクトリ名のみでアクセスできるファイル名を追記します。

DirectoryIndex index.html index.cgi index.php index.rb index.py

316行目:行頭に「#」を追記してコメント化し、文字化け対応します。

#AddDefaultCharset UTF-8

最終行に追記します。(gateway timeoutエラー対策)

Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15

ドキュメントルート所有者を編集ユーザー(webmaster)に変更する。

[root@www ~]# chown webmaster. /var/www/html/

ドキュメントルート所有者を確認する。

[root@www ~]# ll /var/www/
合計 0
drwxr-xr-x 2 root root 6 4月 24 22:46 cgi-bin
drwxr-xr-x 2 webmaster webmaster 6 4月 24 22:46 html

URLのwwwを設定する。

[root@www ~]# vi /etc/httpd/conf.d/virtualhost-centserver.jp.conf

wwwなしに統一する。

<VirtualHost *:80>
    ServerName centserver.jp
    DocumentRoot /var/www/html
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.centserver\.jp
    RewriteRule ^(.*)$ http://centserver.jp/$1 [R=301,L]
</VirtualHost>

起動します。

[root@www ~]# systemctl start httpd

自動起動設定します。

[root@www ~]# systemctl enable httpd

HTMLテストページを作成します。

[root@www ~]# vi /var/www/html/index.html
<html>
<body>
<div style="width: 100%; font-size: 20px; font-weight: bold; text-align: center;">
Test Page
</div>
</body>
</html>

Webブラウザを起動し、「http://centserver.jp」にアクセスし、動作確認をします。

Webブラウザを起動

TCP80番ポート開放

ルーターの設定で、TCP80番ポートを開放します。(設定方法はご自身の環境に合わせて調べてください。

ポート開放テスト

こちらのサイトで「ホスト名(centserver.jp)」、「ポート番号(80)」の開放確認をします。

Perlのインストール

Perl をインストールします。

[root@www ~]# yum -y install perl perl-CGI

「html」ディレクトリで CGI の実行を許可する設定します。

[root@www ~]# vi /etc/httpd/conf.d/html.conf

拡張子 cgi、pl、rb、py を CGI として設定します。

<Directory "/var/www/html">
    Options +ExecCGI
    AddHandler cgi-script .cgi .pl .rb .py
</Directory>

「/usr/local/bin/perl」で、Perlコマンドへアクセスできるようにします。

[root@www ~]# ln -s /usr/bin/perl /usr/local/bin/perl

Perlのパスを確認します。

[root@www ~]# whereis perl
perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz

再起動します。

[root@www ~]# systemctl restart httpd

CGIテストページを作成します。

[root@www ~]# vi /var/www/html/index.cgi
#!/usr/bin/perl

print "Content-type: text/html\n\n";
print "<html>\n<body>\n";
print "<div style=\"width: 100%; font-size: 20px; font-weight: bold; text-align: center;\">\n";
print "CGI Test Page";
print "\n</div>\n";
print "</body>\n</html>\n";

パーミッションを設定します。

[root@www ~]# chmod 705 /var/www/html/index.cgi

Webブラウザを起動し、「http://centserver.jp/index.cgi」にアクセスし、動作確認をします。

Webブラウザを起動

PHPのインストール

PHP をインストールします。

[root@www ~]# yum -y install php php-mbstring php-pear

PHP を設定します。

[root@www ~]# vi /etc/php.ini

878行目:行頭の「;」を削除してコメント解除し、自身のタイムゾーンを追記します。

date.timezone = "Asia/Tokyo"

再起動します。

[root@www ~]# systemctl restart httpd

PHPテストページを作成します。

[root@www ~]# vi /var/www/html/index.php
<html>
<body>
<div style="width: 100%; font-size: 20px; font-weight: bold; text-align: center;">
<?php
print "PHP Test Page";
?>
</div>
</body>
</html>

Webブラウザを起動し、「http://centserver.jp/index.php」にアクセスし、動作確認をします。

Webブラウザを起動

Rubyのインストール

Ruby をインストールします。

[root@www ~]# yum -y install ruby

再起動します。

[root@www ~]# systemctl restart httpd

Rubyテストページを作成します。

[root@www ~]# vi /var/www/html/index.rb
#!/usr/bin/ruby

print "Content-type: text/html\n\n";
print "<html>\n<body>\n";
print "<div style=\"width: 100%; font-size: 20px; font-weight: bold; text-align: center;\">\n";
print "Ruby Test Page";
print "\n</div>\n";
print "</body>\n</html>\n";

パーミッションを設定します。

[root@www ~]# chmod 705 /var/www/html/index.rb

Webブラウザを起動し、「http://centserver.jp/index.rb」にアクセスし、動作確認をします。

Webブラウザを起動

Pythonのインストール

Python をインストールします。

[root@www ~]# yum -y install python

再起動します。

[root@www ~]# systemctl restart httpd

Python テストページを作成します。

[root@www ~]# vi /var/www/html/index.py
#!/usr/bin/env python

print "Content-type: text/html\n\n";
print "<html>\n<body>\n";
print "<div style=\"width: 100%; font-size: 20px; font-weight: bold; text-align: center;\">\n";
print "Python Test Page";
print "\n</div>\n";
print "</body>\n</html>\n";

パーミッションを設定します。

[root@www ~]# chmod 705 /var/www/html/index.py

Webブラウザを起動し、「http://centserver.jp/index.py」にアクセスし、動作確認をします。

Webブラウザを起動

Perlモジュールのインストール

チェックを入れて「OK」をクリックするとインストールログが表示されます。

モジュール名 説明
  全て
  Jcode  日本語文字コードの変換
  Getopt::Long  コマンドライン引数のオプションを処理する
  Archive::Tar  tarファイルの展開と作成(v5.10以降)
  Cwd  カレントディレクトリのパスを取得する
  File::Basename  ファイルのベース名とディレクトリ名の取得
  File::Copy  ファイルの移動とコピー
  File::Path  複数階層のディレクトリの作成と削除
  File::Spec ファイル名に対する移植性のある処理
  File::Temp  一時ファイルの作成
  File::Find  ファイルの検索
  FindBin  スクリプトが存在するディレクトリのパスの取得
  Encode  日本語などのマルチバイト文字列を適切に処理する
  utf8  ソースコード内の文字列を内部文字列に変換
  Carp  モジュールの呼び出し元の観点で例外を発生させる
  lib  モジュールの検索パスの追加
  Time::Piece  日付・時刻を扱うための標準モジュール(v5.10からコアモジュール)
  Time::Local  localtime,gmtimeの逆返還
  base  クラスの継承
  Data::Dumper  変数の内容を出力する
  Benchmark  ベンチマーク(性能比較)を行う
  JSON  JSONデータの解析
  MIME::Base64  Base64形式へのエンコード
  MIME::QuotedPrint  quoted-printable形式へのエンコード
  Digest::MD5  MD5値を求める
  Digest::SHA  各種SHA値を求める (v5.10以降)
  Storable  データのシリアライズ化
  Scalar::Util  スカラ値に関するユーティリティ
  List::Util  配列に対するさまざまな操作
  Hash::Uti  ハッシュのキーの制限
  Sys::Hostname  ホスト名の取得
  Net::FTP  FTPクライアント
  Net::Ping  リモートホストの生存確認
  Exporter  関数のエクスポート
  CPAN  CPANからモジュールをインストールする
  Pod::Usage  PODドキュメントの出力
  Errno  システムのエラー番号をあらわす定数
  POSIX  POSIXで定義された関数
  Math::BigInt  大きな数の計算
  Math::BigFloat  大きな数の計算
  Mojolicious  Webフレームワーク
  Mojolicious::Plugin::AutoRoute  ルートを自動的に生成
  MIME::Lite  メールを簡単に送信
  Class::Accessor::Fast  アクセサの作成
  Object::Simple  デフォルト値つきのアクセサの作成
  DDP  データをく出力する
  DBIx::Custom  データベース簡単操作
  MySQL::Diff  MySQLの差分を表示
  DateTime  日付の汎用的な処理
  PDL  統計解析
  Imager  画像編集
  Text::CSV::Encoded  日本語を含んだCSVファイルを取り扱う
  Text::Diff  テキストの差分確認
  XML::Simple  シンプルなXMLパーサ
  Validator::Custom  HTMLフォームの検証
  Data::Page  ページング処理の支援
  Data::Page::Navigation  ページのナビゲーションの作成
  Module::Starter  モジュールの雛形を作成する
  Devel::NYTProf 使いやすいプロファイラ
  perltidy  ソースコードの整形
  Net::Ping::External  pingコマンドの実行
  IO::ScalarArray  標準入力の自動試験
  IO::Capture  標準出力、標準エラー出力の自動試験
  FFI::Raw  ダイナミックライブラリ内の関数を呼び出す
  Math::Trig  さまざまな三角関数
  FFI::Platypus  機能豊富なFFIモジュール
  Time::Moment  日付・時刻の高速な処理
  CGI  CGIモジュール
  CGI::Carp  HTTPD(またはその他)にエラーログを書込む
  DBI  各種データベースをアクセスする
  strict  文法チェックを厳しくする
  LWP::UserAgent  Web 上のデータに アクセスする
  LWP::Protocol::https  LWP::UserAgentでSSLに アクセスする
  Net::SSLeay  LWP::UserAgentでSSLに アクセスする
  Net::SSL  LWP::UserAgentでSSLに アクセスする
  Crypt::SSLeay  LWP::UserAgentでSSLに アクセスする
  Encode::Guess  文字コードを判別
  Image::ExifTool  Exifの情報を取得する
  Archive::Tar  tar 展開、作成、ファイルの追加
  Image::Magick  ImageMagick のコマンドラインツール
  Archive::Zip  zip 展開、作成、ファイルの追加

モジュールをインストールします。

[root@www ~]# 

ImageMagikのインストール

ImageMagickをインストールします。

[root@www ~]# yum -y install ImageMagick

perl ImageMagickをインストールします。

[root@www ~]# yum -y install ImageMagick-perl

サーバー証明書の取得

Certbotをインストールします。

[root@www ~]# yum --enablerepo=epel -y install certbot

証明書を取得します。

ドキュメントルート:/var/www/html/

メールアドレス:webmastercentserver.jp

Webサーバー名:centserver.jp

[root@www ~]# certbot certonly --webroot -w /var/www/html/ -m webmaster@centserver.jp  -d centserver.jp --agree-tos

証明書自動更新の設定をします。

[root@www ~]# vi /etc/cron.d/letsencrypt

下記を追記します。

00 16 * * 2 root /usr/bin/certbot renew --post-hook "service httpd restart"

SSLの設定

SSLをインストールして、暗号化通信ができるように設定します。

[root@www ~]# yum install mod_ssl

SSLを設定します。

[root@www ~]# vi /etc/httpd/conf.d/ssl.conf

59行目:行頭の「#」を削除してコメントを解除します。

DocumentRoot "/var/www/html"

75行目:変更します。

SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2

100行目:取得した証明書を指定します。

SSLCertificateFile /etc/letsencrypt/live/centserver.jp/cert.pem

107行目:取得した鍵ファイルを指定します。

SSLCertificateKeyFile /etc/letsencrypt/live/centserver.jp/privkey.pem

116行目:取得した中間証明書を指定します。

SSLCertificateChainFile /etc/letsencrypt/live/centserver.jp/chain.pem

再起動します。

[root@www ~]# systemctl restart httpd

Free Monitoring Test Toolsで「https://centserver.jp」の作動確認をします。