Apache 1.3 は DSO をサポートしているため、簡単に Apache モジュールをロードしたり、独自のモジュールをコンパイルして Red Hat Linux Secure Web Server に組み込んだりすることができます。DSO がサポートされたということは、モジュールを実行時にロードしてもかまわないということです。モジュールは必要な場合にしかロードされないため、ロードされる場合を除いてモジュールがメモリを使用することがなくなるので、全体として必要となるメモリが少なくて済みます。
Apache Group は、完全な DSO 文書を http://www.apache.org/docs/dso.html で公開しています。サーバをインストールした後で、Apache モジュールに関する HTML 形式のマニュアルを http://your_domain/manual/mod/ でチェックすることができます。モジュールのロード方法の簡単な説明を次に示します。ただし、詳細については、記載する URL をチェックしてください。
Red Hat Linux Secure Web Server で動的共有モジュールを使用するためには、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) はコンパイルされていますが、ロードされていません。
ロードされていないモジュールを Red Hat Linux Secure Web Server にロードさせるには、まず対応する LoadModule 行からコメント記号を削除します。たとえば、Red Hat Linux Secure Web Server に mime_magic_module をロードさせたい場合は、このモジュールの本来の LoadModule の行を変更します。
#LoadModule mime_magic_module modules/mod_mime_magic.so
上記の行からコメント記号を削除すると、以下のようになります。
LoadModule mime_magic_module modules/mod_mime_magic.so
次に、これと対応する、httpd.conf の AddModule セクションに含まれる行のコメント記号を削除します。前出の例を使って説明するならば、mod_mime_magic の行からコメント記号を削除します。本来の (デフォルト) 行は以下のようになっています。
#AddModule mod_mime_magic.c
コメント記号を削除すると以下のようになります。
AddModule mod_mime_magic.c
ロードしたいモジュールに関する LoadModule の行と AddModule の行のコメント記号を削除した後で、the section called Apache の起動と停止 in Chapter 5 で説明したようにして Web サーバを停止および起動します。起動後に、そのモジュールが Red Hat Linux Secure Web Server 内にロードされるはずです。
独自のモジュールがある場合は、そのモジュールを httpd.conf ファイルに追加することによって、そのモジュールをコンパイルし、DSO としてロードすることができます。そうする場合は、Chapter 4 で説明したように、apache-devel パッケージをインストールする必要があります。apache-devel パッケージが必要なのは、このパッケージによって Include ファイル、ヘッダファイル、および Apache eXtenSion (APXS) サポートツールがインストールされるからです。APXS は、独自モジュールが Apache と共に動作できるようにするために、Include ファイルとヘッダファイルを使用してそのモジュールをコンパイルします。
独自のモジュールを作成してあるか、または誰か他の人のモジュールを借りている場合でも、APXS を使用すれば、コンパイラやリンカのフラグをいじらなくても、Apache ソースツリーの外側にあるモジュールソースをコンパイルできるようになるはずです。APXS の詳細情報が必要な場合は、http://www.apache.org/docs/dso.html にある Apache のマニュアルを参照してください。
APSX を使用して独自モジュールをコンパイルした場合は、そのモジュールを /usr/lib/apache の中に保存してください。この場合、Apache のモジュールについて説明したのと同様に、独自モジュールについても httpd.conf ファイルに LoadModule の行と AddModule の行の両方を追加する必要があります。httpd.conf の LoadModule 一覧の後ろに、以下のような独自モジュール用の共有オブジェクトのための行を一行追加します。
LoadModule foo_module modules/mod_foo.so
モジュールの名前および共有オブジェクトファイルの名前を適宜変更する必要があることに注意してください。
httpd.conf の AddModule 一覧の末尾に、以下のような独自モジュール用のソースコードファイルのための行を一行追加します。
AddModule mod_foo.c
ソースコードファイルの名前を適宜変更する必要があることに注意してください。
上記のステップを完了した後で、the section called Apache の起動と停止 in Chapter 5 で説明したようにして Web サーバを停止および起動します。すべてを正しく実行し、かつ独自モジュールを正しく作成してある場合、そのモジュールは Web サーバの起動時に検出され、ロードされるはずです。
Red Hat Linux Secure Web Server の mod_ssl 部分は Dynamic Shared Object (DSO) として提供されます。これは、mod_ssl セキュリティモジュールの EAPI 拡張パッチを Apache に適用する場合には、ユーザが Apache Web サーバを再コンパイルできるということを意味します。Apache に mod_ssl を組み込むには、mod_ssl のマニュアルに記載された指示にしたがってください。ただし、以下のフラグを追加します。
--with-eapi-only
コマンドライン全体は、以下のようになるはずです。
./configure [userflags] --with-eapi-only
次に Apache を構築してインストールします。
注意:: Red Hat は再コンパイルされたバージョンの Apache Web サーバをサポートすることはできません。出荷バージョンのインストールはサポートされます。ただし、Apache の再コンパイルはユーザの責任において実行してください。何をしているかについて確信を持てる場合を除き、Apache を再コンパイルしないでください。