質問: apache2のモジュール apache2のソースを入手してインストールして実行しましたが、 /usr/local/apache2/modules の中身はhttpd.expしかありません。 なのでhttpc.confのloadmodule~というのを20行ぐらいコメントアウトしました。 これは普通じゃない状態だと思います。 apache2の./configureの引数がよくなかったのでしょうか?
回答: そのような状態はありえます。 $ /usr/local/apache2/bin/httpd -l と実行してみてください。組み込まれているモジュールの一覧が表示されると思います。 モジュールの組み込み方法は「静的」と「動的 (dso)」の2種類があります。 「静的」とは httpd ファイルそのものにモジュールを組み込む方式です。apache が起動時に自動的に組み込まれるため、httpd.conf ファイルに loadmodule を設定する必要はありません。長所はパフォーマンス的に有利なこと、短所は不要なモジュールを取り除くためには際コンパイルが必要なことです。 「動的 (dso)」とは起動時に動的に組み込むモジュールです。コンパイルされたモジュールは /usr/local/apache2/modules ディレクトリにインストールされます。長所は loadmodule の設定により付け外しができること、短所はパフォーマンス的に若干不利なことです。 ./configure オプションで何も指定しなかった場合、標準的なモジュールが「静的」にインストールされます。 「動的」にインストールしたい場合は、動的にインストールしたいモジュールに対して、--enable-mods-shared オプションを以下のように設定します。 "--enable-mods-shared=alias userdir autoindex" (alias, userdir, autoindexモジュールが動的にインストールされる) --enable-mods-shared=most --enable-mods-shared=all (ほとんど/全てのモジュールが動的にインストールされる)