「Apache」の設定
「Apache」のインストール
Gentoo ~ # emerge 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
▲ページのトップへ