
「Apache」の設定
「Apache」のインストール
「Apache」の設定
Gentooでは「Apache」の設定ファイルのメインは httpd.conf ですが、
ドキュメントルート等についてはVirtualHost用の設定ファイルを使用します。
「httpd.conf」の設定
Gentoo ~ # vi /etc/apache2/httpd.conf <= 設定ファイルの編集
ServerAdmin root@localhost
↓
ServerAdmin kaz@crimson-snow.net <= 管理者のメールアドレスを指定
#ServerName localhost
↓
ServerName www.crimson-snow.net:80 <= サーバ名を指定
<Directory /home/*/public_html>
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
↓
Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI Includes <= CGI,SSIを許可
</Directory>
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エラー)をログに記録しない
wormからのアクセスのログを切り分けるように設定
#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 "xmlrpc\.php" no_log worm
SetEnvIf Request_URI "zero_vote" no_log worm
SetEnvIf Request_URI "sumthin" no_log worm
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)$" no_log <= gif,jpg,png,cssへのアクセスをログに記録しない
SetEnvIf Remote_Addr 192.168. no_log <= 内部からのアクセスをログに記録しない
CustomLog logs/access_log combined env=!no_log
<= 上記以外のアクセスをログに記録する(通常のログファイル)
CustomLog logs/worm_log combined env=worm <= wormのログファイル
ここまで追加
ServerSignature On
↓
ServerSignature Off <= エラーページ等でApacheのバージョン等を表示しない
AddDefaultCharset ISO-8859-1
↓
#AddDefaultCharset ISO-8859-1 <= コメントアウト
#AddHandler cgi-script .cgi
↓
AddHandler cgi-script .cgi .pl <= CGIスクリプトに.plを追加
|
「00_default_vhost.conf」の設定
Gentoo ~ # vi /etc/apache2/vhosts.d/00_default_vhost.conf <= 設定ファイルの編集
<Directory "/var/www/localhost/htdocs">
Options Indexes FollowSymLinks
↓
Options Indexes FollowSymLinks ExecCGI Includes <= CGI,SSIを許可
</Directory>
|
Perlを利用する場合、先頭にPerlへのパスを記述しますが、Gentoo以外ではパスが
/usr/local/bin/perl
というケースが多々あります。
そこで、このパスでも実行できるよう、リンクを貼ります。
Gentoo ~ # ln -s /usr/bin/perl /usr/local/bin/perl
|
ドキュメントルートの所有者を一般ユーザに変更します。
Gentoo ~ # chown kaz.kaz /var/www/localhost/htdocs
|
「Apache」の起動
Gentoo ~ # /etc/init.d/apache2 start
|
「Apache」の自動起動
Gentooを起動する際に自動的に「Apache」を起動するようにします。
Gentoo ~ # rc-update add apache2 default
|
CGIの実行の制限
このままですと、すべてのディレクトリでCGIが実行されてしまいます。
その為、セキュリティ的にも問題がありますので、CGIの実行を許可するディレクトリを限定します。
なお、ここでは /var/www/localhost/cgi-bin/ のみ実行を許可するものとします。
Gentoo ~ # vi /etc/apache2/vhosts.d/00_default_vhost.conf <= 設定ファイルの編集
<Directory "/var/www/localhost/htdocs">
Options FollowSymLinks <= 「Includes ExecCGI」を追加しない
</Directory>
Gentoo ~ # vi /etc/apache2/httpd.conf <= 設定ファイルの編集
ScriptAlias /cgi-bin/ /var/www/localhost/cgi-bin/ <= 確認(CGIを許可するディレクトリを指定)
<Directory "/var/www/localhost/cgi-bin/">
AllowOverride None
Options None
↓
Options Includes ExecCGI FollowSymLinks <= CGI,SSIを許可
Order allow,deny
Allow from all
AddHandler php5-script .php <= 追加(phpの設定)
AddHandler image/gif .gif <= 追加(gifはイメージファイルとして処理)
AddHandler image/jpeg .jpeg .jpg <= 追加(jpeg jpgはイメージファイルとして処理)
AddHandler image/png .png <= 追加(pngはイメージファイルとして処理)
AddHandler text/css .css <= 追加(cssはcssとして処理)
AddHandler text/html .html .htm <= 追加(html htmはhtmlとして処理)
</Directory>
|
「Apache」を再起動し、設定を反映させます。
Gentoo ~ # /etc/init.d/apache2 restart
|