サーバー構築日記へ
Apacheの設定
今回はSSIによるカウンタの提供と、PHP&PostgreSQLを用いたデータベースの提供を行います。
また、ezmlm-cgiの都合上cgi-binを非公開とするために.htaccess、.htpasswdを用いることにしました。
今回は掲示板の提供予定はありません。行うとしても非公開掲示板のため、.htaccessでcgi-binが非公開とされていても特に問題はないと見ています。
・Apacheの導入
インストール時にそのまま導入。バージョンは1.3.20。
近いうちに1.3.24か2.0.32betaを導入することを考慮中。
※追記:Vine2.5への変更により、1.3.24にアップグレード
DocumentRootが/home/httpd/html/に
・SSIを使用するための設定
SSIを使用するためには/etc/httpd/conf/httpd.confの設定が必要です。
# vi httpd.conf
<Directory /var/www/html>
AddType text/html .shtml
AddHandler server-parsed .shtml
Options +Includes
</Directory>
半分よりちょっと下の所にある設定をこのような感じにする。
これで.shtmlでSSIを使用することが可能になります。
このため、うちのトップページはindex.shtmlとなっています。別にhtmlに関連づけてもいいと思いますけどね。
・アクセス制限をする
/etc/httpd/conf/httpd.confの設定を書き換える。
私の場合はezmlm-cgiの関係上cgi-bin以下にアクセス制限をかけるため下記のようにした。
# vi httpd.conf
<Directory/>
Options All
AllowOverride All
</Directory>
<Directory "/var/www/cgi-bin">
AllowOverride All
Options All
Order allow,deny
Allow from all
</Directory>
.htpasswdを作成する。
# /usr/local/bin/htpasswd -c .htpasswd xxxx
Adding user xxxx
New password: xxxxxx
Re-type new password: xxxxxx
userはパスワードのID、passwordはそのままパスワードのこと。
これによって暗号化された.htaccessができあがる。
さてこのファイルはできるだけ人がアクセスしにくい所に置く。ドキュメントルートのすぐ上などが望ましいだろう。
# mv .htpasswd /var/www/.htpasswd
.htaccessの設定。
下記のファイルを.htaccessとして保存し、アクセス制限したいディレクトリに置く。
AuthName "Please enter username and password"
AuthUserFile /var/www/.htpasswd
AuthType Basic
AuthGroupFile /dev/null
<Limit GET POST>
require valid-user
</Limit>
※追記:ezmlm-cgiからMHonArcへの移行により変更箇所を/home/httpd/htmlに
※参考
.htaccessで秘密の認証ページを作る : ZDNetのTips for Linuxより
LINUXサーバー構築運用実験ガイド2001 : 日経LINUXムックVol.3