拡張モジュール組み込みはDSOで動的にできる |
Table1に示したもので組み込み状態が「○」となっているのが、Apacheを標準構成でコンパイルした際に利用されるモジュールだ。標準状態では、Fig.1に示すようにApacheが動作する。
コンパイル時には、幾つかの設定をすることでTable1に示したものの中で「×」となっているモジュールを組み込んだり、Apacheには標準で含まれないモジュールを組み込むことが可能だ。
Fig.1は、コンパイル時にモジュールを組み込んだものだが、Apacheではもう1つのモジュール組み込み方法として「DSO(Dynamic Shared Object)」を使ったモジュールの動的な組み込みがサポートされている。
DSOを使った動的な(設定ファイルによる編集で制御)組み込みを提供するのは、mod_soモジュールだ。mod_soモジュールを組み込み、DSOを使って動的にモジュールを組み込む場合、その構成は、Fig.2のようになる。
Fig.2■DSOを使ったモジュールの組み込み
|
Fig.2のようにDSOを利用する場合には、mod_soモジュールが必要に応じて組み込まれるようにコンパイルされたモジュールを読み込む。どのモジュールをDSOとして組み込むかは、設定ファイルで変更が可能だ。
Fig.1のようにコンパイル時にモジュールを組み込んだ場合には、後からモジュール(機能)を取り外すことはできない。しかし、Fig.2のようにDSOとしてモジュールをコンパイルした場合には、Apacheの設定ファイル(httpd.conf)を編集するだけで自由にモジュール(機能)の選択ができるのだ。
よってApacheのさまざまなモジュールを試してみたいということであれば、モジュールをDSOとしてコンパイルしておくのがよいだろう。Red Hat LinuxやTurbolinuxでインストールされるRPMパッケージのApacheでは、標準でDSOによる組み込みになっている。
しかし、DSOを使ってモジュールを組み込む方法は、コンパイル時にApacheに組み込む手段に比べパフォーマンスが落ちる。なぜならば、DSOによるモジュールは、呼び出す際にmod_soモジュールを経由する必要があるためだ。よって頻繁に使うモジュールについては、コンパイル時に組み込んでしまったほうがよい。
なお、すべてのモジュールがDSOに対応しているわけではない。Apacheに付属しているモジュールは(mod_soモジュール自身を除き)、すべてDSOに対応しているものの、広くオープンソースで配布されるモジュールによってはDSOに対応せず、コンパイル時にのみ組み込めるものもある。
|
Apacheのコンパイル時には、どのモジュールをコンパイル時に組み込んで、どのモジュールをDSOとして利用できるようにコンパイルするのかを決めなければならない。つまりコンパイルする際には、あらかじめApacheをどのような構成にするのかを考えておく必要がある。
そうとはいえ、最初のうちはどのモジュールがどのような役割をするのかが分かりにくいのも事実。そこで、最初のステップとしておすすめなのは、とりあえず全部をDSOとして組み込んでしまうのがよいだろう。最終的な運用時には、どのモジュールを使うのかが決まった時点でApacheをコンパイルし直し、以後使用するであろうパフォーマンスを重視するモジュールだけをApache自身に組み込んでしまうのがよい。
|
3/14 |