Configureファイル内でのモジュール組み込み指定


Configureファイル内でモジュールの設定をしておけば、make時の設定を保存しておくことができる。次回のバージョンアップ時などに再利用できて便利だ。

 Configurationファイルでは、どのモジュールを組み込むのかを設定する。「Apacheとモジュール」で前述したように、モジュールにはコンパイル時に組み込む方法と、DSOとして組み込めるようにコンパイルする方法の2種類がある。

 コンパイル時に組み込む場合には、次のようにAddModuleを記述する。

AddModule モジュール名

 それに対してDSOとして動的に組み込めるようにコンパイルするのであれば、次のようにShareModuleを記述する。

ShareModule モジュール名

 標準のConfigurationファイル内では、List 2に示すようにAddModuleが記述されている。そのため、前述したTable 1のモジュールが組み込まれるのだ。

List2■Configurationファイルのモジュール組み込み部分

# AddModule modules/experimental/mod_mmap_static.o
# AddModule modules/standard/mod_vhost_alias.o
AddModule modules/standard/mod_env.o
AddModule modules/standard/mod_log_config.o
# AddModule modules/standard/mod_log_agent.o
# AddModule modules/standard/mod_log_referer.o
# AddModule modules/standard/mod_mime_magic.o
AddModule modules/standard/mod_mime.o
AddModule modules/standard/mod_negotiation.o
AddModule modules/standard/mod_status.o
# AddModule modules/standard/mod_info.o
AddModule modules/standard/mod_include.o
AddModule modules/standard/mod_autoindex.o
AddModule modules/standard/mod_dir.o
AddModule modules/standard/mod_cgi.o
AddModule modules/standard/mod_asis.o
AddModule modules/standard/mod_imap.o
AddModule modules/standard/mod_actions.o
# AddModule modules/standard/mod_speling.o
AddModule modules/standard/mod_userdir.o
AddModule modules/standard/mod_alias.o
# AddModule modules/standard/mod_rewrite.o
AddModule modules/standard/mod_access.o
AddModule modules/standard/mod_auth.o
# AddModule modules/standard/mod_auth_anon.o
# AddModule modules/standard/mod_auth_dbm.o
# AddModule modules/standard/mod_auth_db.o
# AddModule modules/standard/mod_digest.o
# AddModule modules/experimental/mod_auth_digest.o
# AddModule modules/proxy/libproxy.a
# AddModule modules/standard/mod_cern_meta.o
# AddModule modules/standard/mod_expires.o
# AddModule modules/standard/mod_headers.o
# AddModule modules/standard/mod_usertrack.o
# AddModule modules/example/mod_example.o
# AddModule modules/standard/mod_unique_id.o
# AddModule modules/standard/mod_so.o
AddModule modules/standard/mod_setenvif.o

 上のList2に示したように、標準ではすべてがAddModuleによる記述であることが分かる。ShareModuleによる記述は1つも見られないだろう。DSOとして組み込みたいのであれば、AddModuleと記述されている個所をShareModuleに変更すればよい。


ShareModuleの指定は、該当するモジュールをDSO形式で組み込み可能なようにコンパイルする指示。DSOを利用して実際にモジュールを組み込むかどうかは、Apacheの設定ファイルであるhttpd.confファイル内で指定される。

 ただしShareModuleを使ってDSOとして組み込むためには、mod_soモジュールをAddModuleで組み込んでおく必要がある。そのため、DSOを利用するのであれば次のようにmod_soモジュールの組み込みを有効にしよう。

AddModule modules/standard/mod_so.o

 なお、モジュールの組み込みはConfigurationファイルにAddModuleやShareModuleを記述する方法以外にも、「configureスクリプトによる環境設定」で説明するconfigureスクリプトのオプションとして指定する方法もある。

 少数のモジュールしか組み込まないのであれば、Configurationファイルを書き換えるよりも、./Configurationスクリプト実行時の「--enable-module」や「--enable-shared」オプションを指定する方が容易だ。

 考え方の1つとしては、モジュールの組み込みをConfigurationファイルに記述しておいたほうが、後にApacheをコンパイルし直す場合や、別のモジュールを追加したい場合などに便利だろう。変更内容をConfigurationファイルに反映させるだけで済むため、コンパイル作業の管理がしやすくなる。


ConfigurationファイルのAddModule行を削除すれば(もしくはコメントアウトすれば)、標準のモジュールであっても、Apacheに組み込まないように設定ができる。しかし標準で有効になっているモジュールを削除してしまうと、正しく動作しないことがある。このため、モジュールの動作をよく理解していない場合には、削除など変更を加えない方がよい。

PREV 7/14 NEXT