【03: Apache モジュール 】

■Apache モジュールの使用
モジュールとは、Apache API 仕様に従って記述されたコードです。
モジュールには、/www/conf/ httpd.conf に動的にロードされるものと、コンパイル済みの httpsd デーモンに静的にロードされるものがあります。

モジュールを動的にロードして Web サーバで利用できるようにすると、命令セットの処理が CGI など外部のプログラムではなく内部で行われるようになるため、要求に対する Web サーバのレスポンス タイムが向上します。
 
■静的にリンクされたモジュール
SVシリーズ の Apache に静的にリンクされているモジュールには、以下のものがあります。
http_core
apache_ssl
mod_access
mod_actions
mod_alias
mod_auth
mod_auth_dbm
mod_autoindex
mod_cgi
mod_dir
mod_imap
mod_include
mod_log_agent
mod_log_config
mod_log_referrer
mod_mime
mod_setenvif
mod_so.c
mod_userdir
Apache の各モジュールの詳細については以下のサイトを参照してください。
http://www.apache.org/docs/mod/
 
■動的にロードされるモジュール
モジュールを動的にロードできる機能は DSO サポートと呼ばれています。
Apache ではモジュールを動的に追加できます。
したがって、機能の拡張時に再構築を行う必要はありません。

/www/libexec ディレクトリには、Web サーバに動的に追加できるモジュールが格納されています。
このモジュール ディレクトリは、libexec にリンクしています。
よく使われるモジュール
mod_dav (http://www.lyra.org/greg/mod_dav/)
mod_frontpage (ftp://ftp.vr.net/pub/apache/mod_frontpage/)
mod_jserv (http://java.apache.org)
mod_perl (http://perl.apache.org)
mod_php4 (http://www.php.net)
 
その他のモジュール
mod_asis (http://www.apache.org/docs/mod/mod_asis.html)
mod_auth.db (http://www.apache.org/docs/mod/mod_auth_db.html)
mod_auth.msql (http://www.webweaving.org/mod_auth_msql/)
mod_auth.mysql (http://bourbon.netvision.net.il/mysql/mod_auth_mysql/)
mod_auth.pgsql (ftp://ftp.eurolink.it/pub/linux/www/mod_auth_pgsql/)
mod_auth_anon (http://www.apache.org/docs/mod/mod_auth_anon.html)
mod_cern_meta (http://www.apache.org/docs/mod/mod_cern_meta.html)
mod_digest (http://www.apache.org/docs/mod/mod_digest.html)
mod_env (http://www.apache.org/docs/mod/mod_env.html)
mod_expires (http://www.apache.org/docs/mod/mod_expires.html)
mod_fastcgi (http://www.apache.org/docs/mod/mod_fastcgi.html)
mod_headers (http://www.apache.org/docs/mod/mod_headers.html)
mod_info (http://www.apache.org/docs/mod/mod_info.html)
mod_mime_magic (http://www.apache.org/docs/mod/mod_mime_magic.html)
mod_mmap_static (http://www.apache.org/docs/mod/mod_mmap_static.html)
mod_negotiation (http://www.apache.org/docs/mod/mod_negotiation.html)
mod_proxy (http://www.apache.org/docs/mod/mod_proxy.html)
mod_rewrite (http://www.apache.org/docs/mod/mod_rewrite.html)
mod_speling (http://www.apache.org/docs/mod/mod_speling.html)
mod_status (http://www.apache.org/docs/mod/mod_status.html)
mod_usertrack (http://www.apache.org/docs/mod/mod_usertrack.html)
mod_vhost_alias (http://www.apache.org/docs/mod/mod_vhost_alias.html)
 
■動的にロードできるモジュールをロードする
動的モジュールは、/www/conf/httpd.conf に読み込まれます。
LoadModule はhttpd.conf ファイルの冒頭部分に記述されているので、まずモジュールがロードされ、そのあと命令がモジュールに渡されます。
「httpd.conf」ファイルは、初期状態では、ルートオーナー権限になっておりますので、FTP接続でファイルをダウンロードする事はできません。
「chown」コマンドで、オーナー権限を管理者に変更されてから、FTP接続でダウンロードされるか、直接viコマンド等のエディタコマンドで編集を行って下さい。
どの方法で行うにせよ、「httpd.conf」ファイルは非常に重要な設定ファイルですので、 編集作業前には、必ずバックアップ用のファイルを作成される事を強くお薦め致します。
httpd.conf ファイルの冒頭に、以下の行を記述します。
LoadModule モジュールファイル名
LoadModule コマンドの詳細については、以下のサイトを参照してください。
http://www.apache.org/docs/mod/mod_so.html#loadmodule
以下に、LoadMudule の記述例を示します。
LoadModule env_module modules/mod_env.so
modules ディレクトリは、ディレクトリ「/usr/local/apache」 のサブディレクトリです。
modules ディレクトリは SVサーバが所有していますが、ディレクトリ内の module ファイルは システム上位で所有しています。
モジュールは、SVシリーズ の使用容量の対象にはなりません。
ほとんどのモジュールは LoadModule コマンドを実行するだけで読み込むことができますが、 info モジュールと status モジュールの場合は、httpd.conf ファイルに別の行を追加記述する必要があります。
 
■info_module の読み込み
info_module を読み込むには、以下の手順を実行します。

$vi /www/conf/httpd.conf
↑上記のようにhttpd.confファイルを開きます。
 

LoadModule info_module modules/mod_info.so
<Location /info>
SetHandler server-info
</Location>
httpd.confファイルに上記の設定を追加します。

■status_module の読み込み
status_module を読み込むには、以下の手順を実行します

$vi /www/conf/httpd.conf
↑上記のようにhttpd.confファイルを開きます。
 
LoadModule status_module modules/mod_status.so
<Location /info>
SetHandler server-info
</Location>
httpd.confファイルに上記の設定を追加します。
 
■status_module を Apache Web サーバで利用する
ブラウザを開き、以下の URL にアクセスします。
http:// www.yourdomain.com /status/
 
■Web サーバの稼働状態を 10 秒ごとに更新する
ブラウザを開き、以下の URL にアクセスします。
http:// www.yourdomain.com /status?refresh=10
 
■info モジュールの使用
ブラウザを開き、以下の URL にアクセスします。
http:// www.yourdomain.com /info/
 
この URL にアクセスすると、読み込まれたモジュールやその他のサーバ設定など、 Apache Web サーバに関する情報が表示されます。
/status ディレクトリや /info ディレクトリがすでに存在する場合、
<Location / infoparameter > には任意のロケーションを指定します。
たとえば、<Location /apacheinfo> などを指定してください。
ロケーション変更後の info モジュールを参照するには、
http:// www.yourdomain.com /apacheinfo/ を使います。
別のアクセスパラメータも指定する必要があるモジュールもありますので、モジュールの一覧に記載されている URL にアクセスして、説明資料を確認してください。
 
独自の DSO モジュールをコンパイルする
独自のモジュールをダウンロードして、Web サーバでコンパイルすることができます。
ただし、モジュールのコンパイルやデバッグはサポート サービスの対象外となることをご了承ください。
Apache 1.3.11 は、APXS (APache eXtenSion) ツールをサポートしています。APXS を使うと、独自の dynamic shared object (DSO) Apache モジュールをコンパイルしたり、リンクしたりすることができます。
APXS を使用するには、以下のように入力します。

% /usr/local/apache/bin/apxs OPTIONS MODULE_CODE
詳細については、以下のサイトを参照してください。
http://www.apache.org/docs/dso.html