バーチャルホストの設定 | ホームサーバが出来るまで。

バーチャルホストの設定

間があきましたが、apache の設定をします。/usr/local/apache2/conf/httpd.conf が設定ファイルなのでこれを編集します(今回はかなりいいかげん、トライ&エラーです)。

1)文字化け対策
デフォルトで言語が指定されていると、日本語の文字化けが起きるので AddDefaultCharset ISO-8859-1 をコメントに。

2)apache の名前、バージョンを表示しない
エラーページでは、デフォルトで Apache/2.0.51 (Unix) Server at x.x.x.x Port 80 が表示されるようになっていますが、これを止めてしまいます。 ServerSignature Off で止まります。

3)CGI を使う
CGI を使いたいので AddHandler cgi-script .cgi のコメントを外します。また、CGI のスクリプトを置く <Directory>に、Options ExecCGI を記述しておきます。あと、httpd.conf とは関係ないのですが、このままでは 403 Forbidden となりました。apache が nobody で動く設定になっているので、スクリプトを置くディレクトリの owner を nobody にしてしまいました(これは正しいやり方なのか、不明です)。
chown nobody .
でカレントディレクトリ owner が変わります。

4)バーチャルホスト
IPアドレスが固定ではないので、偶然の一致でアクセスされた場合というのは望まないアクセスなので弾くことにします(dummy の <Directory>で Deny form all を記述)。IPアドレスの場合と、ダイナミック DNS のドメイン名の場合とを、両方記述しておきます。
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /usr/www/dummy
ServerName 192.x.x.x
ErrorLog logs/dummy-error_log
CustomLog logs/dummy-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /usr/www/xxx
ServerName xxx.xxx.jp
ErrorLog logs/dummy-error_log
CustomLog logs/dummy-access_log common
</VirtualHost>
正しいのかな? でも思い通りに動いているようです。