Apache2インストール記録

以前、Apache2をインストールしたので、その記録を書いておく。

ここからダウンロード:http://httpd.apache.org/download.cgi

その後、展開してインストール。

 $ tar xzvf httpd-2.2.11.tar.gz
 $ ./configer --prefix=/usr/local/apache2
 $ make
 # make install
 # /usr/local/apache2/bin/apachectl start

「--prefix=/usr/local/apache2」はインストールディレクトリ指定。あとは通常通りの手順を踏んでApacheの起動が正常にできれば完了といったところだ。

httpd.confの設定

サーバ名称変更

ServerName [IP address]

モジュール(mod_userdir.c)の設定。ユーザ毎に公開ディレクトリの作成

<IfModule mod_userdir.c>
UserDir public_html
</IfModule>

ユーザ毎のディレクトリアクセス権限等

<Directory /home/*/public_html>
Options FollowSymLinks ExecCGI
AllowOverride None
Order deny,allow
Allow from all
</Directory>

「Allow from all」のところを最初「Deny from all」としていて、まったくアクセスできなかったよ。何でか分かるまで時間食った。ダメだね理解せずになんだかんだやると。

ちなみに、その時出ていたエラー


[Sun Jul 05 18:33:28 2009] [error] [client 192.168.32.1] client denied by server
configuration: /home/knoppix/public_html/index.html

あとはPerl大好きっ子にとってはスクリプトの指定も行わねば、

<IfModule mime_module>
AddHandler script-type .cgi .pl
</IfModule>

これで各ユーザのホームディレクトリの「public_html」以下に.cgiや.plのスクリプトを実行する事ができる。ちなみに「public_html」以下じゃなく「cgi-bin」以下で動かす場合はこちらの方がいいのかな。

<Directory /home/*/public_html>
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>

<Directory /home/*/public_html/cgi-bin>
Options FollowSymLinks ExecCGI
AllowOverride None
Order deny,allow
Allow from all
</Directory>

「Options」の項目に「ExecCGI」を指定する。と自身と配下のディレクトリでスクリプトが実行可能となる。でいいんだよね。あんまりApacheの設定やった事無いからな〜まあいいや、本来であればセキュリティーも考えて「Allow」「Deny」をきちんと設定した方がよいのだろうが、まあいいや、また今度やろ。

項目名 内容
FollowSymLinks シンボリックリンクを許可する
ExecCGI CGIの実行を許可する
Indexes ディレクトリの中を一覧表示可能にする(Web上で)