理工系研究者のための Mac OS X, Windows, Linux メモ
 
ホーム >> ソフトウェア >> Apache HTTPモジュールに付いて
このエントリーをはてなブックマークに追加

Apache HTTP モジュール

作成日:2010/11/15

環境

  • Mac OS 10.6.4
  • Apache HTTP 2.2.16

はじめに

Apache HTTPサーバはモジュールを取り込むことで機能の拡張ができるように設計されています。 モジュールを組み込む方法には2種類あり、本体のコンパイル時に組み込む方法と、実行時に必要なモジュールをロードさせる方法があります。 後者ではDynamic Shared Object(DSO)という機能を用いて共有ライブラリの形にしておいたオブジェクトを設定ファイルに従って読み込みます。 この仕組みはmod_soというモジュールで実現されるのでmod_soは本体のコンパイル時に静的に組み込んでおく必要があります。

静的に組み込めば少しだけ実行速度が速くなるようですが、普通に使う分にはほとんどメリットはないようです。

静的に組み込む方法

httpdをコンパイルする時にconfigureオプションで指定します。例えばdavモジュールを組み込む場合にはオプションに--enable-davを付けます。

$ ./configure --enable-dav

DSOとして組み込む方法

例えばmod_rewriteモジュールを組み込むとします。 mod_rewriteのソースはhttpdのソースファイルに含まれています。

$ httpd-2.2.16/modules/mappers/mod_rewrite.c
モジュールのコンパイルにはapxsを使います。
$ apxs -c mod_rewrite.c
$ apxs -i -a -n rewrite mod_rewrite.la
httpd.confには自動的に
LoadModule rewrite_module     modules/mod_rewrite.so
が追記され、モジュールとなる共有ライブラリもapacheのディレクトリのmodules以下にインストールされます。

モジュールを有効にするにはhttpdを再起動します。

# apachectl restart

モジュールの確認

動的、静的を問わず組み込まれているモジュールを確認するには httpd にオプション-Mを付けて実行します。

$ httpd -M
 core_module (static)
 authn_file_module (static)
 authn_default_module (static)
(中略)
 alias_module (static)
 so_module (static)
 php5_module (shared)
 rewrite_module (shared)
Syntax OK
静的なモジュールには (static)、DSOモジュールには(shared) が付きます。

参考サイト・参考文献