いよいよWEB公開の準備です。
①GNOME端末を立ち上げ、パッケージをインストールします。
必要なパッケージは httpd/mod_perl/firefox ですが、既にmod_perlとfirefoxは
インストールされていますので、httpd(Apache) のみインストールします。
1. # su と root管理者権限のパスワード を入力
2. # yum install httpd を入力
(省略)
3. # y を入力
(省略)
Complete! と表示され完了。
②WEBサーバーの設定
続けて(GNOME端末で)
1. # su -
2. # gedit /etc/httpd/conf/httpd.conf を入力
3. httpd.conf ファイルを編集します
a. 文字検索で serveradmin と入力し検索します。色付きでハイライトされます。
ServerAdmin root@localhost → ServerAdmin root@自サーバーアドレス に変更
(通常使用しているメールアドレスを登録します)
b. 続けて servername と入力し検索します。色付きでハイライトされます。
#ServerName www.example.com:80 → ServerName 自サーバーアドレス:80 に変更
c. 続けて options indexes と入力し検索します。色付きでハイライトされます。
Options Indexes FollowSymLinks → Options Includes ExecCGI FollowSymLinks に変更
* Includes : SSIを許可
* ExecCGI : CGIを許可
* FollowSymLinks : シンボリックリンク先へのアクセスを許可します。
d. 続けて allowoverride と入力し検索します。色付きでハイライトされます。
AllowOverride None → AllowOverride All に変更
* オプションは他にもあります。詳細の説明は割愛します。
* 「 None 」は、全てのオーバーライド(上書き)を禁止し.htaccess の設置を無視します。
* 「 All 」は、.htaccess ファイルの設置を許可します。
* .htaccess ファイルを設置する設定で作業を進めます。
サーバーのパフォーマンスが多少落ちてしまいますが、
このファイルの使用に慣れたら httpd.conf に記述する方向で構築します。
httpd.conf に記述するとパフォーマンスが向上します。
e. 続けて 少し下にある
Order allow,deny Order allow,deny
Allow from all → Allow from 192.168.0.0/24
に書き換えます。(アドレスはサーバーのipアドレスに応じ変更します)
ここでは、自宅内のパソコンよりのみアクセスを許可しています。
(まさか自宅でipアドレス数256個もありませんが、、、、)
* 今回の設定では、LAN内のみにWEBページが閲覧できる設定になります。
サーバー構築の状況をみて、LAN外に開放します。その時は、
Allow from 192.168.0.0/24 → Allow from all に戻します。
* 全てのマシンからのアクセスを拒否する時には、
Order allow,deny だけにします。
f. 続けて servertokens と入力し検索します。色付きでハイライトされます。
ServerTokens OS → ServerTokens Prod
* エラーページ等でOS名を表示させない
g. 続けて serversignature と入力し検索します。色付きでハイライトされます。
ServerSignature On → ServerSignature Off
* エラーページ等でApacheのバージョンを表示させない
h. 続けて addhandler と入力し検索します。色付きでハイライトされます。
#AddHandler cgi-script .cgi → AddHandler cgi-script .cgi .pl
* CGIスクリプトが実行できる
i. 続けて adddefaultcharset と入力し検索します。色付きでハイライトされます。
AddDefaultCharset UTF-8 → #AddDefaultCharset UTF-8
* デフォルトキャラセットを無効にする。
j. 続けて LogFormat と入力し検索します。色付きでハイライトされます。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
→ LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
* 長すぎるURI(414 Error)はログに記録しない
k. 続けて customlog logs と入力し検索します。色付きでハイライトされます。
#CustomLog logs/access_log common の下に下記を追記します。
------------------------------------- 追加 ------------------------------------------
SetEnvIf Request_URI "default\.ida" no_log : wormからのアクセスをログに記録しない
SetEnvIf Request_URI "cmd\.exe" no_log : wormからのアクセスをログに記録しない
SetEnvIf Request_URI "root\.exe" no_log : wormからのアクセスをログに記録しない
SetEnvIf Request_URI "Admin\.dll" no_log : wormからのアクセスをログに記録しない
SetEnvIf Request_URI "NULL\.IDA" no_log : wormからのアクセスをログに記録しない
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(ico)|(css)$" no_log
: (拡張子)ファイルへのアクセスを記録しない
SetEnvIf Remote_Addr 192.168. no_log : 内部からのアクセスをログに記録しない
CustomLog logs/access_log combined env=!no_log : 上記以外のアクセスをログに記録する
---------------------------------------------------------- 以上 ---------------------
以上で完了です。ファイルを保存しエディタを終了します。
③Perlのシンボリックリンク設定
続けて(GNOME端末で)
# ln -s /usr/bin/perl /usr/local/bin/perl を入力
* シンボリックリンク設定(/usr/local/bin/perl から /usr/bin/perl へリンクする)
* この設定でPerlのパスが/usr/local/bin/perlでもCGIが実行出来る様になります。
④ドキュメントルートの所有者変更
続けて(GNOME端末で)
# chown xxxx:xxx /var/www/html/ を入力
* ドキュメントルートの所有者を変更します。
* 所有者は /etc/passwd ファイル にあるログイン名(例ではxxxx)を指定します。
rootのままだと何かと不都合なので変更します。
⑤WEBサーバーの起動
続けて(GNOME端末で)
# /etc/init.d/httpd start でApacheを起動
# /sbin/chkconfig --level 2345 httpd on でApacheを自動起動に設定
⑥確認
アドレス欄に 127.0.0.1 を入力する。
Fedora Test Page が表示されれば、インストール完了です。
* 今回のApacheのMPM (Multi Processing Module) はデフォルトのpreforkで動かします。
PHPを搭載しますので、このままの設定で構築します。(システムの安定化優先)
workerも搭載されていますので、必要により使用する時は
/etc/sysconfig/httpd にある #HTTPD=/usr/sbin/httpd.worker の # を削除します。
* CGIの動作テストで Internal Server Error の表示で止まってしまった場合は、
プログラムの改行コードの表記違いによる場合があります。
先頭行のPerlへのパスを #!/usr/bin/perl → #!/usr/bin/perl -- に変更し確認します。
もし直るようであれば、改行コードによるエラーです。
FTP転送ソフトの転送モードを確認しましょう。
転送モードをバイナリー転送モードにします。(Linux上では LF のみ使用できます。)
この場合、改行コードはDOS(CR+LF)からUnix(LF)に変換されます。
vsftpdの場合は、vsftpd.confを開いて、
ascii_upload_enable=YES
ascii_download_enable=YES
コメントアウトされている部分のコメントを外し、YESに設定を変更します。
WEB公開へ向けた下ごしらえの完了です。
本公開は以上の設定の他に、ルーター・ネットワーク・ファイアウォールの設定などが必要になります。