サーバー構築日記へ

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