Home

技術系のメモと日々の雑感

Apache の configure オプションを理解する

先日、mod_proxy を使うために Apache をコンパイルしなおそうとしたときのこと。
configure のオプションはずっと前に誰かが考えたのを使い回していた。
いわゆる秘伝のタレみたいなものだ。
そんないいものじゃないか。
まぁ、深く考えずに、--enable-proxy を足すだけでいいだろうと思っていた。

./configure --prefix=/usr/local/apache --enable-module=so --enable-so ¥
--enable-rule=SHARED_CORE --enable-ssl --enable-rewrite --enable-proxy

でも、よく見るといくつかの疑問が。
--enable-rule=SHARED_CORE って?
--enable-module=so と --enable-so は何が違うの?
う〜ん・・・。
やっぱり理解しないまま使うのはよろしくないね。
いい機会なので、リファレンスを眺めてみた。
分かった範囲で configure のオプション指定の基本ルールをまとめると

■ オプションなしでもデフォルトのモジュール(Baseセット)が有効になっている
■ --enable-[module名] と指定するとモジュールが静的に組み込まれる
■ Shared Object(DSO)にする場合、--enable-[module名]=shared で個別に指定するか
    --enable-mods-shared=all ですべてを指定する

といったところ。
ちなみに、Base セットに含まれるモジュールの説明は、リファレンスにも書かれてないようだ。
何だかスッキリしないなぁ。
確認する方法を考えているうちに、--enable-mods-shared=all だけ指定してコンパイルする方法を思いついた。
これなら、modules ディレクトリの下にデフォルトで有効なモジュールだけが作られるはず。
早速、2.2.13 のソースでやってみたら次のファイルが作られた。

mod_actions.so          mod_cern_meta.so   mod_log_config.so
mod_alias.so            mod_cgi.so         mod_log_forensic.so
mod_asis.so             mod_dav.so         mod_logio.so
mod_auth_basic.so       mod_dav_fs.so      mod_mime.so
mod_auth_digest.so      mod_dbd.so         mod_mime_magic.so
mod_authn_anon.so       mod_deflate.so     mod_negotiation.so
mod_authn_dbd.so        mod_dir.so         mod_rewrite.so
mod_authn_dbm.so        mod_dumpio.so      mod_setenvif.so
mod_authn_default.so    mod_env.so         mod_speling.so
mod_authn_file.so       mod_expires.so     mod_status.so
mod_authz_dbm.so        mod_ext_filter.so  mod_substitute.so
mod_authz_default.so    mod_filter.so      mod_unique_id.so
mod_authz_groupfile.so  mod_headers.so     mod_userdir.so
mod_authz_host.so       mod_ident.so       mod_usertrack.so
mod_authz_owner.so      mod_imagemap.so    mod_version.so
mod_authz_user.so       mod_include.so     mod_vhost_alias.so
mod_autoindex.so        mod_info.so

core モジュールとかも含まれてるかもしれないけど、参考にはなるだろう。
mod_rewrite はデフォルトで有効なんだね。
あと、--enable-rule=SHARED_CORE はすでに使われてないオプションで、--enable-module=so も古い指定方法らしい。
ということで、上で書いたオプション指定を 2.2 用に修正すると

./configure --prefix=/usr/local/apache --enable-so --enable-ssl=shared --enable-proxy=shared

こんなところか。
秘伝のタレもたまには作り直さないと腐るよね・・・。

この記事に対するトラックバック

この記事のトラックバックURL

この記事に対するコメント

承認待ちコメント

このコメントは管理者の承認待ちです

  • 投稿者: -
  • 2011/02/23 11:38:06
  • [編集]

承認待ちコメント

このコメントは管理者の承認待ちです

  • 投稿者: -
  • 2011/02/22 23:29:47
  • [編集]

この記事にコメントする

管理者にだけ表示を許可する