ヴァーチャルホストと同様、モジュール関係の設定ファイルも別ディレクトリで管理されている。/etc/apache2 以下には、モジュール設定ファイルのありかとして、mods-available と mods-enable が存在する。/etc/apache2/apache2.conf には、次のようになっている。
# Include module configuration: Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf
つまり /etc/apache2/mods-available の中に拡張子 .conf と .load というファイルで設定されているモジュールが利用可能で、/etc/apache2/mods-enabled にシンボリックリンクがあるモジュールのみが読み込まれ、有効になるわけだ。mod-perl を例にとってみよう。
まずはインストール。
# apt-get install libapache2-mod-perl2
インストールした後、/etc/apache2/mods-available を見ると、設定ファイルもインストールされている。
# cd /etc/apache2/mods-available/ # ls perl.* perl.conf perl.load
perl.load の中身は、
# cat perl.load LoadModule perl_module /usr/lib/apache2/modules/mod_perl.so
となっており、モジュールを読み込む設定のみが記されている。
perl.conf は
# cat perl.conf PerlModule Apache2
とあり、最低限の記述となっている。あとは、必要に応じ、.cgiの拡張子がついたものをmod-perlで動かすとか、あるディレクトリでのみmod-perl で動かすなどの設定を、このファイルに施せばよい。
後は /etc/apache2/mods-enabled にシンボリックリンクを作成すれば有効になるわけだが、モジュールをインストールすれば、そこまでは勝手にやってくれる。すでに下記のように、作成されていた。
# cd ../mods-enabled/ # ls -l perl.* lrwxrwxrwx 1 root root 37 2005-01-08 16:52 perl.conf -> /etc/apache2/mods-available/perl.conf lrwxrwxrwx 1 root root 37 2005-01-08 16:52 perl.load -> /etc/apache2/mods-available/perl.load
以上である。Debian のApache2 で、ホストやモジュールの設定がそれぞれのファイルに分かれていることで最初は抵抗があった。しかし、調査してみると、元々長大になりやすく、かえって見通しが悪くなっていたhttpd.conf を、非常に管理しやすくするアイデアであるなと思えてきた。シンボリックも自動的に張られるし、煩雑さも感じない。さすがDebian! ほかのディストリビューションではとてもじゃないが出来ない芸当であろう。
Posted by e-ueda at 2005年01月09日 21:19