
mod_cgi.c ファイルに含まれ、
デフォルトでコンパイルされます。
これは CGI スクリプトを実行する機能を提供します。
このモジュールによってmime typeがapplication/x-httpd-cgi
のファイルが処理されます。
application/x-httpd-cgi、または
ハンドラが cgi-script (Apache 1.1 またはそれ以降)
のファイルは CGI スクリプトとみなし、サーバ上で実行し、そのスクリプトは
クライアントに結果を出力します。
AddType命令で設定したファイル名
の拡張子か、または
ScriptAliasで設定した
ディレクトリで始まるかで判断します。
サーバが CGI スクリプトを起動した時、DOCUMENT_ROOT という
環境変数を CGI スクリプトの環境に追加します。
この変数にはDocumentRootで設定した
値が格納されます。
MINIMAL_DNSしなかった場合に設定します。
onの時にだけ設定します。
%% [time] request-line %% HTTP-status CGI-script-filenameもし、CGI スクリプトを実行できないエラーの時、ログは次のように 2行追加されます。:
%%error error-messageあるいは、スクリプトが返してきたヘッダ情報が合わない(間違えていた)場合のエラーの時は、次の情報がログが蓄積されます。:
%request 受信した全ての HTTP リクエストヘッダ POST または PUT (どちらかであれば) %response CGI スクリプトによって出力された全てのヘッダ %stdout CGI の標準出力 %stderr CGI の標準エラー出力( %stdout と %stderr の項目が空白の場合があるが、恐らく標準出力と標準エラー出力の両方とも帰っていないと考えられる)
ScriptLog命令は CGI スクリプトのエラーログファイルを設定します。ScriptLogに何も設定しないとエラーログは作成されません。設定すると、CGI のエラーのログを設定された値のファイル名に蓄積します。相対パスでファイル名を指定すると、server rootで指定したパスの配下に指定したファイルになります。
このログは、子の処理が作動するユーザとして開かれるでしょう。すなわち主なUser命令で指定されたユーザです。これは、スクリプトログに対するユーザの書き込みが可能である必要があるディレクトリか、またはファイルが手動で作られる必要があり、ユーザによる書き込みが可能であるように設定しているディレクトリの、どちらかを意味します。もしメインのログディレクトリにスクリプトログを置いたら、子の処理が作動するユーザによる書き込みを可能にするために、ディレクトリのパーミッションを変えてはいけません。
CGIスクリプトを書くとき、スクリプトのロギングは特徴のデバッギングをすることになっており、作動しているサーバでは持続しては動かないことに注意してください。スピードや効率では最適化されず、もしデザインされたものと違うやり方で使われれば、セキュリティの問題が起こるかもしれません。
ScriptLogLengthは CGI スクリプトログファイルの最大サイズを指定できます。情報量が多い(全てのリクエスト、全ての出力)CGI エラーログを出力し続けると、ログファイルが肥大化します。 際限無く肥大化する事を防止するために、この命令は CGI ログファイルの最大を設定できるようになっています。ファイル容量がこのサイズを越えると、それ以上の情報を追加しなくなります。
限られた容量のファイルに、PUT または POSTのエントリボディを蓄積する際、すぐにファイルが大きくなってし まう事を回避するために使います。 デフォルトでは、1024 バイトまでをログ蓄積します。この値は変更可能です。
The English original manual is here.