サーバーへのモジュールの追加

 Apache 1.3はDSO(Dynamic Shared Object)をサポートしているため、簡単にApacheモジュールをロードしたり、独自のモジュールをコンパイルしてWebサーバーに組み込んだりすることができます。DSOがサポートされたということは、モジュールを実行時にロードしてもかまわないということです。モジュールは必要な場合にしかロードされないため、ロードされる場合を除いてモジュールがメモリを使用することがなくなるので、全体として必要となるメモリが少なくて済みます。

 Apache Groupは、完全なDSOの解説をhttp://httpd.apache.org/docs/dso.htmlで公開しています。サーバーをインストールした後で、Apacheモジュールに関するHTML形式のマニュアルをhttp://your_domain/manual/mod/でチェックすることができます(apache-manualパッケージをインストールした場合)。モジュールのロード方法の簡単な説明を次に示します。ただし、詳細については、上記のURLをチェックしてください。

 Apacheで動的共有モジュールを使用するためには、httpd.confに、そのモジュールに関するLoadModuleの行とAddModuleの行がなければなりません。デフォルトで、多くのモジュールについてこの2行がhttpd.confの中に組み込まれています。ただし、あまり一般的に使用されないモジュールはコメントアウトされています。コメントアウトされたモジュールは、コンパイル中に組み込まれていますが、デフォルトではロードされません。

 そのようなロードされないモジュールを使用する必要がある場合は、httpd.confファイルを参照して、利用可能なモジュールのすべてを参照してください。利用可能なモジュールの場合には、対応するLoadModuleの行があります。例を示すために、LoadModuleセクションは以下の7行から始まります。

#LoadModule mmap_static_module modules/mod_mmap_static.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule env_module modules/mod_env.so
LoadModule config_log_module modules/mod_log_config.so
LoadModule agent_log_module modules/mod_log_agent.so
LoadModule referer_log_module modules/mod_log_referer.so
#LoadModule mime_magic_module modules/mod_mime_magic.so

 ほとんどの行はコメントアウトされていません。つまり、各関連モジュールはデフォルトでコンパイルされ、ロードされます。先頭行はコメントアウトされています。つまり、対応するモジュール(mmap_static_module)はコンパイルされていますが、ロードされていません。

 ロードされていないモジュールをApacheにロードさせるには、まず対応するLoadModule行からコメント記号を削除します。たとえば、Apacheにmime_magic_moduleをロードさせたい場合は、次の行からコメント記号を削除します。

#LoadModule mime_magic_module modules/mod_mime_magic.so

 次に、これと対応する、httpd.confAddModuleセクションに含まれる行のコメント記号を削除します。前出の例では、mod_mime_magicの行からコメント記号を削除します。本来の(デフォルト)行は以下のようになっています。

#AddModule mod_mime_magic.c

 ロードしたいモジュールに関するLoadModuleの行とAddModuleの行のコメント記号を削除した後で、本ガイドthe section called httpdの起動と停止で説明したようにしてApacheを停止/起動します。起動後に、そのモジュールがApache内にロードされるはずです。

 独自のモジュールがある場合は、そのモジュールをhttpd.confファイルに追加することによって、そのモジュールをコンパイルし、DSOとしてロードすることができます。そうする場合は、本ガイドのChapter 13で説明したように、apache-develパッケージをインストールする必要があります。apache-develパッケージが必要なのは、このパッケージによってインクルードファイル、ヘッダーファイル、Apache ExtenSion(APXS)サポートツールがインストールされるからです。APXSは、独自モジュールがApacheと共に動作できるようにするために、インクルードファイルとヘッダーファイルを使用してそのモジュールをコンパイルします。

Warning警告
 

Red Hat Linuxで提供されているGUIの Apache設定ツールを使用する場合は、独自のモジュールをApache Webサーバーにコンパイルしたり、Apache Web サーバーのhttpd.conf設定ファイルを編集したりしないでください。逆に、 モジュールをApacheに追加したり、手動でhttpd.confを編集したい場合は、Apache 設定ツールを使用しないでください。

Apache設定ツールの詳細を知りたい場合は、オフィシャル Red Hat Linux カスタマイズガイドを参照してください。

 独自のモジュールを作成してあるか、または誰か他の人のモジュールを借りている場合でも、APXSを使用すれば、コンパイラやリンカのフラグをいじらなくても、Apacheソースツリーの外側にあるモジュールソースをコンパイルできるようになるはずです。APXSの詳細情報が必要な場合は、http://httpd.apache.org/docs/dso.htmlにあるApacheのマニュアルを参照してください。

 APSXを使用して独自モジュールをコンパイルした場合は、そのモジュールを/usr/lib/apacheの中に保存してください。この場合、Apacheのモジュールについて説明したのと同様に、独自モジュールについてもhttpd.confファイルにLoadModuleの行とAddModuleの行の両方を追加する必要があります。httpd.confLoadModule一覧の後ろに、以下のような独自モジュール用の共有オブジェクトのための行を1行追加します。

LoadModule foo_module modules/mod_foo.so

 モジュールの名前や共有オブジェクトファイルの名前は必要に応じて変更してください。

 httpd.confAddModule一覧の末尾に、以下のような独自モジュール用のソースコードファイルのための行を1行追加します。

AddModule mod_foo.c

 ソースコードファイルの名前は必要に応じて変更してください。

 上記のステップを完了した後で、本ガイドthe section called httpdの起動と停止で説明したようにしてWebサーバーを停止/起動します。すべてを正しく実行し、かつ独自モジュールを正しく作成してある場合、そのモジュールはWebサーバーの起動時に検出され、ロードされるはずです。

mod_sslセキュリティモジュール

 Webサーバーのmod_sslセキュリティの部分は、DSO(Dynamic Shared Object)として提供されます。これは、mod_sslセキュリティモジュールのEAPI拡張パッチをApacheに適用する場合には、ユーザーがApache Webサーバーを再コンパイルできるということを意味します。Apacheにmod_sslを組み込むには、mod_sslのマニュアルに記載された指示にしたがってください。ただし、以下のフラグを追加する必要があります。

--with-eapi-only

 コマンドライン全体は、以下のようになるはずです。

./configure [userflags] --with-eapi-only

 次にApacheを構築してインストールします。

Note注意
 

Red Hat社は、出荷バージョンのインストールはサポートしますが(パッケージ版購入者のみ)、再コンパイルされたApache Webサーバーをサポートしません。Apacheの再コンパイルはユーザーの責任において実行してください。何をしているかについて確信を持てる場合を除き、Apacheを再コンパイルしないでください。