yoshiki 02/05/15 04:54:39 Modified: htdocs/manual/mod mod_cgi.html.ja.jis Log: Indent. Submitted by: Nobuyuki Morita Revision Changes Path 1.2 +193 -218 httpd-docs-1.3/htdocs/manual/mod/mod_cgi.html.ja.jis Index: mod_cgi.html.ja.jis =================================================================== RCS file: /home/cvs/httpd-docs-1.3/htdocs/manual/mod/mod_cgi.html.ja.jis,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- mod_cgi.html.ja.jis 13 May 2002 11:17:42 -0000 1.1 +++ mod_cgi.html.ja.jis 15 May 2002 11:54:39 -0000 1.2 @@ -2,140 +2,128 @@ - -Apache module mod_cgi - - - - - -

mod_cgi モジュール

- -

このモジュールは CGI スクリプトを実行する機能を提供します。

- -

ステータス: Base
-ソースファイル: mod_cgi.c
-モジュール識別子: cgi_module

- -

概要

- - -

Mime タイプが application/x-httpd-cgi であるか、 -ハンドラ cgi-script (Apache 1.1 以降) が指定されている -ファイルは CGI -スクリプトとして扱われ、サーバにより実行され、その出力が -クライアントに返されます。ファイルは、AddType -ディレクティブに指定された 拡張子を名前に含むか、ScriptAlias -ディレクトリに存在することによりこのタイプになります。 ScriptAlias ディレクトリに -なく、AddType ディレクティブにより -application/x-httpd-cgi のタイプを持つファイルは、 -Options ExecCGI が指定されていなければ、 -サーバにより実行されることはありません。詳細は Options -ディレクティブを 参照してください。

- -

サーバが CGI -スクリプトを実行するときには、DOCUMENT_ROOT と -呼ばれる変数を環境に追加します。この変数は DocumentRoot -の値を保持します。

- -

Apache で CGI -スクリプトを使用するためのイントロダクションは、 CGI による動的コンテンツ -を参照してください。

- -

ディレクティブ

- - - -

Options, ScriptAlias, AddType, AddHandler -も参照してください。

- -

CGI 環境変数

- -

サーバは CGI -規格 で決められている CGI 環境変数を設定します。以下のものは、 -条件付きで設定されます。

- -
-
REMOTE_HOST
- -
HostnameLookups -が on (デフォルトでは off です) -で、 アクセスしているホストのアドレスの DNS -の逆引きが実際にホスト名を -見つけたときにのみ設定されます。
- -
REMOTE_IDENT
- -
IdentityCheck -が on -に設定されていて、アクセスしているホストが ident -プロトコルをサポートしているときにのみ設定されます。 -これは簡単に偽ることができ、クライアントとサーバの間にプロキシがあれば -まったく役に立たないので、この変数の値は信用できないということに -注意してください。
- -
REMOTE_USER
- -
CGI -スクリプトに認証が必要なときにのみ設定されます。
-
- -

CGI デバッグ

- -

CGI -スクリプトのデバッグは、正しく動作していないスクリプトの出力 -(標準出力とエラー) -を調べることができないために、難しい状態が続いていました。 -これらの Apache 1.2 -以降にあるディレクティブはより詳細なエラーのログ収集を -提供します。

- -

CGI ログファイルの書式

- -

設定されているときには、CGI -エラーログは適切に動作しないすべての CGI -をログ収集します。それぞれの正しく動作しない CGI -スクリプトは 複数の行にわたる情報がログ収集されます。最初の -2 行は常に以下の 書式です:

+ + Apache module mod_cgi + + + + + + + +

mod_cgi モジュール

+ +

このモジュールは CGI スクリプトを実行する機能を提供します。

+ +

ステータス: Base
+ ソースファイル: mod_cgi.c
+ モジュール識別子: cgi_module +

+ +

概要

+ +

Mime タイプが application/x-httpd-cgi + であるか、ハンドラ cgi-script (Apache 1.1 以降) + が指定されているファイルは CGI スクリプトとして扱われ、 + サーバにより実行され、その出力がクライアントに返されます。 + ファイルは、AddType + ディレクティブに指定された 拡張子を名前に含むか、 + ScriptAlias + ディレクトリに存在することによりこのタイプになります。 + ScriptAlias + ディレクトリになく、AddType + ディレクティブにより application/x-httpd-cgi + のタイプを持つファイルは、Options ExecCGI + が指定されていなければサーバにより実行されることはありません。 + 詳細は Options + ディレクティブを 参照してください。 +

+ +

サーバが CGI スクリプトを実行するときには、 + DOCUMENT_ROOT + と呼ばれる変数を環境に追加します。この変数は + DocumentRoot + の値を保持します。

+ +

Apache で CGI スクリプトを使用するためのイントロダクションは、 + CGI による動的コンテンツ + を参照してください。

+ +

ディレクティブ

+ + + +

Options, ScriptAlias, AddType, AddHandler + も参照してください。

+

CGI 環境変数

+

サーバは CGI + 規格 で決められている CGI + 環境変数を設定します。以下のものは、条件付きで設定されます。

+ +
+
REMOTE_HOST
+ +
HostnameLookups + が on (デフォルトでは off です) + で、アクセスしているホストのアドレスの DNS + の逆引きが実際にホスト名を見つけたときにのみ設定されます。
+ +
REMOTE_IDENT
+ +
IdentityCheck + が on に設定されていて、アクセスしているホストが + ident プロトコルをサポートしているときにのみ設定されます。 + これは簡単に偽ることができ、クライアントとサーバの間に + プロキシがあればまったく役に立たないので、 + この変数の値は信用できないということに注意してください。 +
+ +
REMOTE_USER
+ +
CGI + スクリプトに認証が必要なときにのみ設定されます。
+
+ +

CGI のデバッグ

+

CGI スクリプトのデバッグは、正しく動作していないスクリプトの出力 + (標準出力とエラー) + を調べることができないために、難しい状態が続いていました。 + これらの Apache 1.2 以降にある + ディレクティブはより詳細なエラーのログ収集を提供します。

+ +

CGI ログファイルの書式

+

設定されているときには、CGI エラーログは適切に動作しないすべての + CGI をログ収集します。それぞれの正しく動作しない CGI + スクリプトは 複数の行にわたる情報がログ収集されます。最初の + 2 行は常に以下の書式です:

     %% [time] request-line
     %% HTTP-status CGI-script-filename
   
- -

エラーが、CGI -スクリプトが実行できないというものである場合は、 -ログファイルはさらにもう 2 行書かれます:

- +

エラーが、CGI スクリプトが実行できないというものである場合は、 + ログファイルはさらにもう 2 行書かれます:

     %%error
     error-message
   
- -

そうではなく、エラーが正しくないヘッダ情報を返す結果である場合 -(スクリプトのバグであることがよくあります)、以下の情報が -ログ収集されます:

- +

そうではなく、エラーが正しくないヘッダ情報を返す結果である場合 + (スクリプトのバグであることがよくあります)、 + 以下の情報がログ収集されます:

     %request
     All HTTP request headers received
  @@ -147,98 +135,85 @@
     %stderr
     CGI standard error
   
- -

(スクリプトが標準出力や標準エラーに何も出力しなかった場合は、 -%stdout や %stderr はありません)。

- -
-

ScriptLog -ディレクティブ

- -構文: ScriptLog -filename
-デフォルト: none
-コンテキスト: -サーバ設定ファイル
-ステータス: mod_cgi - -

ScriptLog ディレクティブは CGI -スクリプトのエラーログファイル を設定します。ScriptLog -が設定されていないときは、エラーログは作成されません。 -設定されているときは、CGI -のエラーはすべて引数として与えられている -ファイル名にログされます。相対パスで指定されているときは、 -サーバルートからの相対パスとして扱われます。

- -

-このログは子プロセスが実行されているユーザとしてオープンされます。 -すなわち、User -ディレクティブで指定された -ユーザです。これは、スクリプトログが書かれるディレクトリがそのユーザで -書き込み可能か、スクリプトファイルが手動で作成され、そのユーザで -書き込み可能になっている必要があるということです。スクリプトログを -アクセスログなどのためのログディレクトリに書かれるようにしたときは、 -そのディレクトリを子プロセスを実行しているユーザの権限で書き込み可能には -しないようにしてください。

- -

スクリプトのログ収集は CGI -スクリプトを書くときのデバッグ用の機能として -意図されていて、通常のサーバで常に使用されるようには意図されていないということに -注意してください。速度や効率は最適化されておらず、設計された以外の -方法で使用されるとセキュリティの問題があるかもしれません。

- -
-

ScriptLogLength -ディレクティブ

- -構文: ScriptLogLength -bytes
-デフォルト: 10385760
-コンテキスト: -サーバ設定ファイル
-ステータス: mod_cgi - -

ScriptLogLength は CGI -スクリプトのログファイルの大きさを -制限するために使用することができます。ログファイルは CGI -のエラー毎に 大量の情報をログしますので -(リクエストのすべてのヘッダ、すべての出力)、 -すぐに大きなファイルになります。この大きさの制限がないことによる -問題を防ぐために、このディレクティブを使って CGI のログファイルの -最大のファイルサイズを設定することができます。 -ファイルがこの大きさを越えた場合は、それ以上は書き込まれません。

- -
-

ScriptLogBuffer

- -構文: ScriptLogBuffer -bytes
-デフォルト: 1024
-コンテキスト: -サーバ設定ファイル
-ステータス: mod_cgi - -

-大きな本体を受け取ったときにログファイルがすぐに大きくなりすぎる -問題を避けるために、ファイルにログ収集される PUT と POST -の本体の大きさは 制限されています。デフォルトでは、1024 -バイトまでがログ収集されますが、 -このディレクティブはそれを変更することができます。 - -

- +

(スクリプトが標準出力や標準エラーに何も出力しなかった場合は、 + %stdout や %stderr はありません)。

+
+ +

ScriptLog + ディレクティブ

+ 構文: ScriptLog + filename
+ デフォルト: none
+ コンテキスト: + サーバ設定ファイル
+ ステータス: mod_cgi +

ScriptLog ディレクティブは CGI スクリプトの + エラーログファイルを設定します。ScriptLog が設定されていないときは、 + エラーログは作成されません。設定されているときは、CGI + のエラーはすべて引数として与えられているファイル名にログされます。 + 相対パスで指定されているときは、 + サーバルートからの相対パスとして扱われます。

+ +

このログは子プロセスが実行されているユーザとしてオープンされます。 + すなわち、User ディレクティブで指定された + ユーザです。これは、スクリプトログが書かれるディレクトリがそのユーザで + 書き込み可能か、スクリプトファイルが手動で作成され、そのユーザで + 書き込み可能になっている必要があるということです。スクリプトログを + アクセスログなどのためのログディレクトリに書かれるようにしたときは、 + そのディレクトリを子プロセスを実行しているユーザの権限で + 書き込み可能にはしないようにしてください。

+ +

スクリプトのログ収集は CGI スクリプトを書くときの + デバッグ用の機能として意図されていて、通常のサーバで + 常に使用されるようには意図されていないということに注意してください。 + 速度や効率は最適化されておらず、設計された以外の方法で使用されると + セキュリティの問題があるかもしれません。

+
+ +

ScriptLogLength + ディレクティブ

+ 構文: ScriptLogLength + bytes
+ デフォルト: 10385760
+ コンテキスト: + サーバ設定ファイル
+ ステータス: mod_cgi +

ScriptLogLength は CGI スクリプトのログファイル + の大きさを制限するために使用することができます。ログファイルは + CGI のエラー毎に大量の情報 (リクエストのすべてのヘッダ、 + すべての出力)をログしますので、すぐに大きなファイルになります。 + この大きさの制限がないことによる問題を防ぐために、 + このディレクティブを使って CGI のログファイルの + 最大のファイルサイズを設定することができます。 + ファイルがこの大きさを超えた場合は、それ以上は書き込まれません。

+
+

ScriptLogBuffer

+ 構文: ScriptLogBuffer + bytes
+ デフォルト: 1024
+ コンテキスト: + サーバ設定ファイル
+ ステータス: mod_cgi +

大きな本体を受け取ったときにログファイルがすぐに大きくなりすぎる + 問題を避けるために、ファイルにログ収集される PUT と POST + の本体の大きさは制限されています。デフォルトでは、1024 + バイトまでがログ収集されますが、 + このディレクティブはそれを変更することができます。 +

+ + --------------------------------------------------------------------- To unsubscribe, e-mail: docs-unsubscribe@httpd.apache.org For additional commands, e-mail: docs-help@httpd.apache.org