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

-

管理人の承認後に表示されます

  • From: |
  • 2013/12/15(日) 16:15:18

-

管理人の承認後に表示されます

  • From: |
  • 2013/12/09(月) 14:14:16

-

管理人の承認後に表示されます

  • From: |
  • 2013/12/09(月) 08:02:18

-

管理人の承認後に表示されます

  • From: |
  • 2013/12/09(月) 01:34:02

-

管理人の承認後に表示されます

  • From: |
  • 2013/12/07(土) 06:05:01

-

管理人の承認後に表示されます

  • From: |
  • 2013/12/05(木) 19:45:43

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/07(木) 09:37:21

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/07(木) 02:10:13

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/06(水) 10:43:17

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/03(日) 02:36:42

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/02(土) 18:19:21

-

管理人の承認後に表示されます

  • From: |
  • 2013/11/02(土) 04:19:39

-

管理人の承認後に表示されます

  • From: |
  • 2013/10/24(木) 11:09:47

-

管理人の承認後に表示されます

  • From: |
  • 2013/08/01(木) 15:48:37

-

管理人の承認後に表示されます

  • From: |
  • 2013/07/06(土) 03:06:45

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

承認待ちコメント

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

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

承認待ちコメント

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

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

この記事にコメントする

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