configureスクリプトオプションでモジュール組み込みを指定

 モジュールを組み込む場合には、Configurationファイルに対して、AddModuleやShareModuleで指定する方法を推奨する。しかし少量のモジュールを有効化(バイナリ「httpd」に組み込ませたい)したいのであれば、configureコマンドの引数(オプション)として指定するほうが容易だ。

 configureコマンドの引数としてモジュールを組み込むには、--enable-moduleオプションや--enablesharedオプションを使い、次のように指定する。

■AddModuleとしてモジュールを組み込む

$ ./configure --enable-module=モジュール名

■Configureファイルに記載されているAddMuduleを無効にしてモジュールを組み込まない

$ ./configure --disable-module=モジュール名

■ShareModuleとしてモジュールをDSOとして組み込めるようコンパイルする

$ ./configure --enable-shared=モジュール名

■Configurationファイルに記載されているShareModuleを無効にし、モジュールをDSOとして組み込めるようコンパイルしない

$ ./configure --disable-shared=モジュール名

 上記のいずれの場合にも、モジュール名には、「mod_」やモジュールの拡張子(「.o」や「.a」)を付加させない名称を指定する。

 たとえば、mod_log_agentモジュールを組み込みたいのであれば、次のように指定すればよい。

$ ./configure --enable-module=log_agent

 --enable-moduleオプションや--enable-shareオプションには、次のような特別な値を指定することもできる。

・--enable-module=all
 mod_auth_digest以外のすべてのモジュールを組み込む。

・--enable-module=most
 mod_auth_db、mod_log_agent、mod_log_referer、mod_log_example、mod_so、mod_mmap_static、mod_auth以外のすべてのモジュールを組み込む。

・--enable-shared=max
 有効になっているモジュール(Configurationファイル中にAddModuleで記述されているモジュール)すべてを、Apacheに組み込むのではなく、DSOを使ってあとから組み込めるようにコンパイルする。

・--enable-shared=remain
 無効になっているモジュールすべてを有効化し、DSOを使ってあとから組み込めるようにコンパイルする。

 たとえば、次のようにすると、すべてのモジュールを、あとからDSOを使って組み込めるようにコンパイルすることができる。

$ ./configure --enable-module=all --enable-share=max --enable-rule=SHARED_CORE


上記の--enable-ruleオプションの設定は、SHARED_COREルールを有効化するためのものであり、DSOを利用するために必須指定だ(Table 2を参照)。また、DSOを使うためにはmod_soモジュールの組み込みも必須だが、上記の「--enable-module=all」指定によりmod_soモジュールも組み込み対象となる。

 このように、すべてのモジュールをDSOとしてコンパイルしておくと、あとでモジュールの付け替えができるようになる。またすべてのモジュールをDSOとしてビルドするのではなく、Apacheに付属しているデフォルト状態のモジュールの組み込みを維持し、それ以外のモジュールをあとからDSOとして組み込めるようにするという選択肢もある。その場合には、次のようにする。

$ ./configure --enable-module=so --enable-rule=SHARED_CORE --enable-shared=remain

 上記の設定の場合、Table 1に示したうち、「○」が付いているモジュールはApache自身に組み込まれ、それ以外のモジュールは、DSOを使ってあとから組み込むことができる、という設定になる。

PREV 10/14 NEXT