mod_cgid
外部 CGI デーモンを使った CGI スクリプトの実行
Base
mod_cgid.c
cgid_module
Unix のスレッド MPM のみ

最適化が施されていることと、以下で説明されている追加の ScriptSock ディレクティブを除いては、 mod_cgid は mod_cgi と同様の 動作をします。Apache と CGI に関する詳細は mod_cgi の概要を読んでください。

Unix オペレーティングシステムの中には、マルチスレッドのサーバから プロセスを fork するのが非常にコストの高い動作になっているものがあります。 理由は、新しいプロセスが親プロセスのスレッドすべてを複製するからです。 各 CGI 起動時にこのコストがかかるのを防ぐために、mod_cgid は子プロセスを fork して CGI スクリプトを実行するための 外部デーモンを実行します。 主サーバは unix ドメインソケットを使ってこのデーモンと通信します。

コンパイル時にマルチスレッド MPM が選ばれたときは mod_cgi の代わりに必ずこのモジュールが使用されます。 ユーザのレベルではこのモジュールの設定と動作は mod_cgi とまったく同じです。唯一の例外は `ScriptSock` ディレクティブの 追加で、このディレクティブは CGI デーモンとの通信用のソケットの名前を 指定します。

mod_cgi
CGI プログラムを違うユーザ ID で実行する
ScriptLog
ScriptLogLength
ScriptLogBuffer
ScriptSock
CGI デーモンとの通信に使われるソケットの名前
ScriptSock file-path
ScriptSock logs/cgisock
server config
virtual host

このディレクティブは CGI デーモンとの通信に使われるソケットの 名前を設定します。ソケットは Apache が起動されたユーザ (通常 root) の パーミッションを用いてオープンされます。CGI スクリプトとの通信の セキュリティを保つために、ソケットの存在するディレクトリに 他のユーザが書き込み権限を持っていないようにすることが重要です。

# 例

ScriptSock /var/run/cgid.sock