| トップ | Solaris | FreeBSD | Gentoo | CentOS | Fedora | Windows | Tips | 自宅サーバの動作確認 | サイト内検索(Namazu) | サイト内検索(HE) |
FreeBSD# cd /usr/ports/www/apache21 <= 作業ディレクトリへ移動 FreeBSD# make install clean <= 「Apache」のインストール インストール時、「python」のオプションを聞かれるが、IPv6は使わないので、そのチェックを外す。 あとはデフォルト [X] THREADS Enable thread support [X] UCS4 Use UCS4 for unicode support [X] PYMALLOC Use python's internal malloc |
FreeBSD6.0-RELEASEでは、一部の設定は /usr/local/etc/apache21/extra
ディレクトリ以下にあり、それを読み込む部分がコメントになっています。
ただし、ここでは httpd.conf ファイルに直接記述する方法で設定します。
FreeBSD# vi /usr/local/etc/apache21/httpd.conf <= 設定ファイルの編集
ServerAdmin you@example.com
↓
ServerAdmin kaz@crimson-snow.net <= 管理者のメールアドレスを指定
#ServerName www.example.com:80
↓
ServerName www.crimson-snow.net:80 <= サーバ名を指定
<Directory "/usr/local/www/data">
Options Indexes FollowSymLinks
↓
Options Includes ExecCGI FollowSymLinks <= 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エラー)をログに記録しない
<IfModule log_config_module>
wormからのアクセスのログを切り分けるように設定
#CustomLog /var/log/httpd-access.log combined <= コメントアウト
以下から追加
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 /var/log/httpd-access.log combined env=!no_log
<= 上記以外のアクセスをログに記録する(通常のログファイル)
CustomLog /var/log/httpd-worm.log combined env=worm <= wormのログファイル
ここまで追加
</IfModule>
ServerTokens Full
↓
ServerTokens Prod <= エラーページ等でApacheのバージョン等を表示しない(FreeBSD6.0-RELEASEでは追加)
ServerSignature On
↓
ServerSignature Off <= エラーページ等でApacheのバージョン等を表示しない(FreeBSD6.0-RELEASEでは追加)
<IfModule mime_module>
#AddHandler cgi-script .cgi
↓
AddHandler cgi-script .cgi .pl <= CGIスクリプトに.plを追加
</IfModule>
|
ドキュメントルートの所有者を一般ユーザに変更します。
FreeBSD# chown kaz:kaz /usr/local/www/data/ |
FreeBSD# /usr/local/sbin/apachectl start |
「Apache」の自動起動
FreeBSDを起動する際に自動的に「Apache」を起動するようにします。
FreeBSD# vi /etc/rc.conf <= 設定ファイルの編集 apache21_enable="YES" <= 追加 |
このままですと、すべてのディレクトリでCGIが実行されてしまいます。
その為、セキュリティ的にも問題がありますので、CGIの実行を許可するディレクトリを限定します。
なお、ここでは /usr/local/www/cgi-bin のみ実行を許可するものとします。
FreeBSD# vi /usr/local/etc/apache21/httpd.conf <= 設定ファイルの編集
<Directory "/usr/local/www/data">
Options FollowSymLinks <= 「Includes ExecCGI」を追加しない
</Directory>
ScriptAlias /cgi-bin/ "/usr/local/www/cgi-bin" <= 確認(CGIを許可するディレクトリを指定)
<Directory "/usr/local/www/cgi-bin">
AllowOverride None
Options None
↓
Options Includes ExecCGI FollowSymLinks <= CGI,SSIを許可
Order allow,deny
Allow from all
AddHandler php-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」を再起動し、設定を反映させます。
FreeBSD# /usr/local/sbin/apachectl restart |