2005年01月09日

DebianでApache2 - モジュールの設定ファイル

ヴァーチャルホストと同様、モジュール関係の設定ファイルも別ディレクトリで管理されている。/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