Debian Sarge の Apache2 は特殊な構成になっているが、これを理解すべく調査を始めた。
設定ファイルは /etc/apache2/apache2.conf となっている。
これを開いてみると、言うまでもなくサーバールートは /etc/apache2 である。
ServerRoot "/etc/apache2"
しかしドキュメントルートの設定は見当たらない。これは、デフォルトのホスト名も含め、ヴァーチャルホストの設定がすべて別のディレクトリに、別々のファイルに分けられて管理されているからである。apache2.conf では、次のようになっている。
# Include the virtual host configurations: Include /etc/apache2/sites-enabled/[^.#]*
よって、sites-enabled 以下のすべてのファイルが読み込まれるわけだ。インストール後は、このディレクトリ内には default という名のファイルがひとつだけある。これが、文字通りデフォルトのホストの設定ファイルで、このファイルをエディタで開くと、DocumentRoot やら ScriptAlias やらの、おなじみの設定を確認することができた。しかし、待てよ、このファイルはシンボリックリンクじゃないか。
# ls -l /etc/apache2/sites-enabled 合計 0 lrwxrwxrwx 1 root root 36 2004-05-08 20:35 default -> /etc/apache2/sites-available/default
実体は、/etc/apache2/sites-available の中の default というファイルであることが分かる。つまり、sites-available の中にあるヴァーチャルホストの設定を有効にしたいときには、/etc/apache2/sites-enabled にシンボリックリンクを張ればよいわけだ。
Posted by e-ueda at 2005年01月08日 16:20