1.Apacheモジュールとは?
Apacheは最低限必要な機能を、Apacheコア、ApacheAPIとして、付加的な機能をApacheモジュールとして実装しています。 Apacheモジュールは、Apacheの動作をカスタマイズしたり、機能拡張を行なうための部品です。Apacheは、Apacheモジュールを必要に応じて出し入れすることで、CGIの実行、リクエストの処理、アクセス制御、SSL通信など様々な機能を実装することが可能です。
ApacheにインストールされているApacheモジュールは
apachectl -M
例:/usr/sbin/apachectl -Mで表示することが可能です。
表示例:
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
auth_basic_module (shared)
auth_digest_module (shared)
authn_file_module (shared)
authn_alias_module (shared)
authn_anon_module (shared)
authn_dbm_module (shared)
・・・・・
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
auth_basic_module (shared)
auth_digest_module (shared)
authn_file_module (shared)
authn_alias_module (shared)
authn_anon_module (shared)
authn_dbm_module (shared)
・・・・・
これらのApacheモジュールはApacheにデフォルトで含まれるモジュールになります。
この中には、CGIスクリプトを実行するために必要な「cgi_module」や、「http://ドメイン名/」のように/で終わるURLの場合にindex.htmlにアクセスさせる「dir_module」、環境変数を制御する「env_module」など、当たり前のように使用している機能も含まれてます。
仮にApacheからこれらを削除すると簡単な掲示板プログラムも動かせません。
さらに、ApacheモジュールはApache内部の処理として動作するため、処理のために新たにプロセスの生成や通信を行なうことがありません。そのため、同じ処理を、phpやperlなどのプログラムで処理を行なう場合と、Apacheモジュールで行なう場合では、弊社作成の絵文字変換モジュールの場合、最大100倍以上の差(弊社比)がありました。

