5−1.Apache2.2のインストール
ここでもportsは大活躍。最初の設定画面で必要なモジュールを指定するのを忘れなければ、
後は特に注意することもない。デフォルトでは無効なproxyとsuexecを指定しておく。
elis# cd /usr/ports/www/apache22
elis# make install
設定ファイルは/usr/local/etc/apache22に一通り置いてある。
ただ、今までhttpd.confの中に直接記述されていた内容がIncludeとしてextraの下に
別ファイルとして用意れていたりするので注意。
一応、languagesとvhostとautoindex、それからuserdirを有効にしておく。
さらにProxyとしても動作するようにする。
もちろん、ローカルからのアクセス時以外は認証ありで。
/usr/local/etc/apache22/httpd.conf
<IfModule proxy_module>
ProxyRequests On
<Proxy *>
AuthUserFile /usr/local/etc/apache22/htpasswd
AuthName hoge
AuthType Digest
Require valid-user
Satisfy Any
Order deny,allow
Deny from all
Allow from 192.168.0.0/16
Allow from 127.0.0.0/16
</Proxy>
</IfModule>
ダイジェスト認証の設定については後述。
ローカルからのアクセスは別ログにしつつ、ワームと思われるログなど不要なログを記録しない。
/usr/local/etc/apache22/httpd.conf
SetEnvIf Request_URI "^/_mem_bin/" nolog
SetEnvIf Request_URI "^/_vti_bin/" nolog
SetEnvIf Request_URI "^/c/" nolog
SetEnvIf Request_URI "^/d/" nolog
SetEnvIf Request_URI "^/msadc/" nolog
SetEnvIf Request_URI "^/MSADC/" nolog
SetEnvIf Request_URI "^/scripts/" nolog
SetEnvIf Request_URI "^/default.ida" nolog
SetEnvIf User-Agent "nagios" nolog
SetEnvIf Request_URI "^/xxxx/" toolslog nolog
SetEnvIf Request_URI "^/xxxx/" toolslog nolog
SetEnvIf Request_URI "^/xxxx/" toolslog nolog
SetEnvIf Remote_Addr "211.8.123.28" locallog nolog
SetEnvIf Remote_Addr "^192.168." locallog nolog
SetEnvIf Remote_Addr "^127." locallog nolog
CustomLog /var/log/httpd-access.log combined env=!nolog
CustomLog /var/log/httpd-lo-access.log combined env=locallog
CustomLog /var/log/httpd-tools-access.log combined env=toolslog
例によってrc.confにも記述を追加する。
/etc/rc.conf
apache22_enable="YES"
apache22_http_accpet_enable="YES"
2行目はワーニングがでる現象を回避するおまじない。
起動スクリプトはいつもの場所にある。
elis# /usr/local/etc/rc.d/apache22 start
5−2.PHP5のインストール
何かと必要になるPHPもインストールする。
設定画面でApacheのmodとマルチバイト対応を指定しておくのを忘れないように。
elis# cd /usr/ports/lang/php5
elis# make install
mbstringやらgdやら必要な拡張モジュールも入れておく。
elis# cd /usr/ports/lang/php5-extensions
elis# make install
アップローダで使うのでPHPでのアップロード上限値を上げる。
elis# cd /usr/local/etc
elis# cp php-production.ini php.ini
/usr/local/etc/php.ini
upload_max_filesize = 800M
当然Apacheを再起動しないと有効にならないので注意。
elis# /usr/local/etc/rc.d/apache22 restart
5−3.Apacheダイジェスト認証の設定
外部からアクセスされたくないけど、
自分で外からアクセスするページにはとりあえずパスワード認証をかける。
平文のベーシック認証は嫌なので今回はダイジェスト認証を設定してみる。
まずは.htaccessかhttpd.confの<Directory>の中に以下の記述をする。
.htaccess
AuthUserFile /usr/local/etc/apache22/htpasswd
AuthName hoge
AuthType Digest
Require valid-user
ローカルからはパスワード不要にする為に以下の記述も追加。
.htaccess
Satisfy Any
Order deny,allow
Deny from all
Allow from 192.168.0.0/16
パスワードファイルはhtdigestで生成する。
elis# htdigest -c /usr/local/etc/apache22/htpasswd hoge foo
hogeはAuthNameに指定した領域名で、fooは任意のユーザ名。
5−4.SquirrelMailのインストール
昔はWebメーラーとしてIMPを入れていたものだけども、
SQLサーバとか用意しないといけなかったりいろいろと面倒なので、
今回はSquirrelMailを試してみる。
elis# cd /usr/ports/mail/squirrelmail
elis# make install
メッセージによるとインストール先が/usr/local/www/squirrelmailで
configureを実行しろとあるのでそうする。
elis# cd /usr/local/www/squirrelmail
elis# ./configure
設定画面がでるので、uwのIMAP用のプリセット値使うように指定。
あとはLanguagesをja-JPに、ドメインを自分のドメインに、
ログアウト時の戻り先URLを指定など、自分の環境に合わせた設定にする。
で、インストールされたディレクトリが見れるようにApacheのAliasを設定する。
/usr/local/etc/apache22/httpd.conf
Alias /mail /usr/local/www/squirrelmail
デフォルトだとアクセスできない場所だから<Directory>の設定も忘れずに。
/usr/local/etc/apache22/httpd.conf
<Directory /usr/local/www/squirrellmail>
(略)