1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
4        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5              This file is generated from xml source: DO NOT EDIT
6        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7      -->
8<title>mod_cgi - Apache HTTP サーバ</title>
9<link href="/style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10<link href="/style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11<link href="/style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="/style/css/prettify.css" />
12<script src="/style/scripts/prettify.js" type="text/javascript">
13</script>
14
15<link href="/images/favicon.ico" rel="shortcut icon" /></head>
16<body>
17<div id="page-header">
18<p class="menu"><a href="/mod/">モジュール</a> | <a href="/mod/directives.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">用語</a> | <a href="/sitemap.html">サイトマップ</a></p>
19<p class="apache">Apache HTTP サーバ バージョン 2.2</p>
20<img alt="" src="/images/feather.gif" /></div>
21<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="/images/left.gif" /></a></div>
22<div id="path">
23<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP サーバ</a> &gt; <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> &gt; <a href="../">バージョン 2.2</a> &gt; <a href="./">モジュール</a></div>
24<div id="page-content">
25<div id="preamble"><h1>Apache モジュール mod_cgi</h1>
26<div class="toplang">
27<p><span>翻訳済み言語: </span><a href="/en/mod/mod_cgi.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
28<a href="/ja/mod/mod_cgi.html" title="Japanese">&nbsp;ja&nbsp;</a> |
29<a href="/ko/mod/mod_cgi.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
30</div>
31<div class="outofdate">この日本語訳はすでに古くなっている
32            可能性があります。
33            最近更新された内容を見るには英語版をご覧下さい。
34        </div>
35<table class="module"><tr><th><a href="module-dict.html#Description">説明:</a></th><td>CGI スクリプトの実行</td></tr>
36<tr><th><a href="module-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
37<tr><th><a href="module-dict.html#ModuleIdentifier">モジュール識別子:</a></th><td>cgi_module</td></tr>
38<tr><th><a href="module-dict.html#SourceFile">ソースファイル:</a></th><td>mod_cgi.c</td></tr></table>
39<h3>概要</h3>
40
41    
42
43    <p>ハンドラ <code>cgi-script</code>
44    が指定されているファイルは CGI スクリプトとして扱われ、
45    サーバにより実行され、その出力がクライアントに返されます。
46    ファイルは、<code class="directive"><a href="/mod/mod_mime.html#addhandler">AddHandler</a></code>
47    ディレクティブに指定された 拡張子を名前に含むか、
48    <code class="directive"><a href="/mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
49    ディレクトリに存在することによりこのハンドラになります。</p>
50
51    <p>Apache で CGI スクリプトを使用するためのイントロダクションは、
52    <a href="/howto/cgi.html">CGI による動的コンテンツ</a>
53    を参照してください。</p>
54
55    <p>Unix でマルチスレッドの MPM を使っている場合は、このモジュールの
56    代わりに <code class="module"><a href="/mod/mod_cgid.html">mod_cgid</a></code> を使う必要があります。
57    ユーザレベルではこの二つのモジュールは本質的には同一です。</p>
58
59    <p>後方互換性のため、MIME タイプが<code>application/x-httpd-cgi</code>
60    のファイルにも CGI スクリプトのハンドラが有効になります。
61    この独自 MIME タイプの利用は非推奨です。</p>
62</div>
63<div id="quickview"><h3 class="directives">ディレクティブ</h3>
64<ul id="toc">
65<li><img alt="" src="/images/down.gif" /> <a href="#scriptlog">ScriptLog</a></li>
66<li><img alt="" src="/images/down.gif" /> <a href="#scriptlogbuffer">ScriptLogBuffer</a></li>
67<li><img alt="" src="/images/down.gif" /> <a href="#scriptloglength">ScriptLogLength</a></li>
68</ul>
69<h3>トピック</h3>
70<ul id="topics">
71<li><img alt="" src="/images/down.gif" /> <a href="#env">CGI 環境変数</a></li>
72<li><img alt="" src="/images/down.gif" /> <a href="#cgi-debug">CGI のデバッグ</a></li>
73</ul><h3>参照</h3>
74<ul class="seealso">
75<li><code class="directive"><a href="/mod/core.html#acceptpathinfo">AcceptPathInfo</a></code></li>
76<li><code class="directive"><a href="/mod/core.html#options">Options</a></code></li>
77<li><code class="directive"><a href="/mod/mod_alias.html#scriptalias">ScriptAlias</a></code></li>
78<li><code class="directive"><a href="/mod/mod_mime.html#addhandler">AddHandler</a></code></li>
79<li><a href="/suexec.html">CGI プログラムを別のユーザ ID で実行する</a></li>
80<li><a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI 規格書</a></li>
81</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
82<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
83<div class="section">
84<h2><a name="env" id="env">CGI 環境変数</a></h2>
85    <p>サーバは <a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI
86    規格</a> で決められている CGI
87    環境変数を設定します。以下のものは、条件付きで設定されます。</p>
88
89    <dl>
90      <dt>PATH_INFO</dt>
91
92      <dd>これは <code class="directive"><a href="/mod/core.html#acceptpathinfo">AcceptPathInfo</a></code> ディレクティブが明示的に <code>off</code>
93      に設定されている場合は設定されません。デフォルトの、
94      <code class="directive">AcceptPathInfo</code> が
95      指定されていないときの振る舞いでは、<code class="module"><a href="/mod/mod_cgi.html">mod_cgi</a></code> はパス情報
96      (URI のスクリプトのファイル名の後に続く <code>/more/path/info</code>) を
97      受け付けますが、コアのサーバはパス情報のあるリクエストに
98      対して 404 NOT FOUND エラーを返します。<code class="directive">AcceptPathInfo</code>
99      ディレクティブを
100      省略すると、<code class="module"><a href="/mod/mod_cgi.html">mod_cgi</a></code> へのリクエストに対して
101      <code>On</code> を
102      設定したのと同じ効果になります。</dd>
103
104      <dt>REMOTE_HOST</dt>
105
106      <dd><code class="directive"><a href="/mod/core.html#hostnamelookups">HostnameLookups</a></code>
107      が <code>on</code> (デフォルトでは off です)
108      で、アクセスしているホストのアドレスの DNS
109      の逆引きが実際にホスト名を見つけたときにのみ設定されます。</dd>
110
111      <dt>REMOTE_IDENT</dt>
112
113      <dd><code class="directive"><a href="/mod/core.html#identitycheck">IdentityCheck</a></code>
114      が <code>on</code> に設定されていて、アクセスしているホストが
115      ident プロトコルをサポートしているときにのみ設定されます。
116      これは簡単に偽ることができ、クライアントとサーバの間に
117      プロキシがあればまったく役に立たないので、
118      この変数の値は信用できないということに注意してください。
119      </dd>
120
121      <dt>REMOTE_USER</dt>
122
123      <dd>CGI
124      スクリプトに認証が必要なときにのみ設定されます。</dd>
125    </dl>
126</div><div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
127<div class="section">
128<h2><a name="cgi-debug" id="cgi-debug">CGI のデバッグ</a></h2>
129    <p>CGI スクリプトのデバッグは、正しく動作していないスクリプトの出力
130    (標準出力とエラー)
131    を調べることができないために、難しい状態が続いていました。
132    これらの Apache 1.2 以降にある
133    ディレクティブはより詳細なエラーのログ収集を提供します。</p>
134
135    <h3>CGI ログファイルの書式</h3>
136	<p>設定されているときには、CGI エラーログは適切に動作しないすべての
137	CGI をログ収集します。それぞれの正しく動作しない CGI
138	スクリプトは 複数の行にわたる情報がログ収集されます。最初の
139	2 行は常に以下の書式です:</p>
140
141      <div class="example"><p><code>
142        %% [<var>time</var>] <var>request-line</var><br />
143        %% <var>HTTP-status</var> <var>CGI-script-filename</var>
144      </code></p></div>
145
146      <p>エラーが、CGI スクリプトが実行できないというものである場合は、
147      ログファイルはさらにもう 2 行書かれます:</p>
148
149      <div class="example"><p><code>
150        %%error<br />
151        <var>error-message</var>
152      </code></p></div>
153
154      <p>そうではなく、エラーが正しくないヘッダ情報を返す結果である場合
155      (スクリプトのバグであることがよくあります)、
156      以下の情報がログ収集されます:</p>
157
158    <div class="example"><p><code>
159      %request<br />
160      <var>受け取ったすべての HTTP リクエストヘッダ</var><br />
161      <var>(もしあれば) POST や PUT の中身</var><br />
162      %response<br />
163      <var>CGI スクリプトにより出力されたすべてのヘッダ</var><br />
164      %stdout<br />
165      <var>CGI 標準出力</var><br />
166      %stderr<br />
167      <var>CGI 標準エラー</var><br />
168    </code></p></div>
169
170    <p>(スクリプトが標準出力や標準エラーに何も出力しなかった場合は、
171    %stdout や %stderr はありません)。</p>
172
173</div>
174<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
175<div class="directive-section"><h2><a name="ScriptLog" id="ScriptLog">ScriptLog</a> <a name="scriptlog" id="scriptlog">ディレクティブ</a></h2>
176<table class="directive">
177<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>CGI スクリプトのエラーログファイルの場所</td></tr>
178<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ScriptLog <var>file-path</var></code></td></tr>
179<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
180<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
181<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td><code class="module"><a href="/mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="/mod/mod_cgid.html">mod_cgid</a></code></td></tr>
182</table>
183    <p><code class="directive">ScriptLog</code> ディレクティブは CGI スクリプトの
184    エラーログファイルを設定します。<code class="directive">ScriptLog</code> が
185    設定されていないときは、
186    エラーログは作成されません。設定されているときは、CGI
187    のエラーはすべて引数として与えられているファイル名にログされます。
188    相対パスで指定されているときは、
189    <code class="directive"><a href="/mod/core.html#serverroot">ServerRoot</a></code>からの相対パスとして
190    扱われます。</p>
191
192    <div class="example"><h3>例</h3><p><code>
193      ScriptLog logs/cgi_log
194    </code></p></div>
195
196    <p>このログは子プロセスが実行されているユーザとしてオープンされます。
197    <em>すなわち</em>、<code class="directive"><a href="/mod/mpm_commmon.html#user">User</a></code> ディレクティブで指定された
198    ユーザです。これは、スクリプトログが書かれるディレクトリがそのユーザで
199    書き込み可能か、スクリプトファイルが手動で作成され、そのユーザで
200    書き込み可能になっている必要があるということです。スクリプトログを
201    アクセスログなどのためのログディレクトリに書かれるようにしたときは、
202    そのディレクトリを子プロセスを実行しているユーザの権限で
203    書き込み可能には<strong>しない</strong>ようにしてください。</p>
204
205    <p>スクリプトのログ収集は CGI スクリプトを書くときの
206    デバッグ用の機能として意図されていて、通常のサーバで
207    常に使用されるようには意図されていないということに注意してください。
208    速度や効率は最適化されておらず、設計された以外の方法で使用されると
209    セキュリティの問題があるかもしれません。</p>
210
211</div>
212<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
213<div class="directive-section"><h2><a name="ScriptLogBuffer" id="ScriptLogBuffer">ScriptLogBuffer</a> <a name="scriptlogbuffer" id="scriptlogbuffer">ディレクティブ</a></h2>
214<table class="directive">
215<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>スクリプトログに記録される PUT や POST リクエストの内容の上限</td></tr>
216<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ScriptLogBuffer <em>bytes</em></code></td></tr>
217<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
218<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
219<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
220<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td><code class="module"><a href="/mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="/mod/mod_cgid.html">mod_cgid</a></code></td></tr>
221</table>
222    <p>大きな本体を受け取ったときにログファイルがすぐに大きくなりすぎる
223    問題を避けるために、ファイルにログ収集される PUT と POST
224    の本体の大きさは制限されています。デフォルトでは、1024
225    バイトまでがログ収集されますが、
226    このディレクティブはそれを変更することができます。 
227    </p>
228
229</div>
230<div class="top"><a href="#page-header"><img alt="top" src="/images/up.gif" /></a></div>
231<div class="directive-section"><h2><a name="ScriptLogLength" id="ScriptLogLength">ScriptLogLength</a> <a name="scriptloglength" id="scriptloglength">ディレクティブ</a></h2>
232<table class="directive">
233<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>CGI スクリプトのログファイルの大きさの上限</td></tr>
234<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ScriptLogLength <var>bytes</var></code></td></tr>
235<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
236<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
237<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
238<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td><code class="module"><a href="/mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="/mod/mod_cgid.html">mod_cgid</a></code></td></tr>
239</table>
240    <p><code class="directive">ScriptLogLength</code> は CGI スクリプトのログファイル
241    の大きさを制限するために使用することができます。ログファイルは
242    CGI のエラー毎に大量の情報 (リクエストのすべてのヘッダ、
243    すべての出力)をログしますので、すぐに大きなファイルになります。
244    この大きさの制限がないことによる問題を防ぐために、
245    このディレクティブを使って CGI のログファイルの
246    最大のファイルサイズを設定することができます。
247    ファイルがこの大きさを超えた場合は、それ以上は書き込まれません。</p>
248
249</div>
250</div>
251<div class="bottomlang">
252<p><span>翻訳済み言語: </span><a href="/en/mod/mod_cgi.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
253<a href="/ja/mod/mod_cgi.html" title="Japanese">&nbsp;ja&nbsp;</a> |
254<a href="/ko/mod/mod_cgi.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
255</div><div class="top"><a href="#page-header"><img src="/images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">コメント</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
256<script type="text/javascript"><!--//--><![CDATA[//><!--
257var comments_shortname = 'httpd';
258var comments_identifier = 'http://httpd.apache.org/docs/2.2/mod/mod_cgi.html';
259(function(w, d) {
260    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
261        d.write('<div id="comments_thread"><\/div>');
262        var s = d.createElement('script');
263        s.type = 'text/javascript';
264        s.async = true;
265        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
266        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
267    }
268    else { 
269        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
270    }
271})(window, document);
272//--><!]]></script></div><div id="footer">
273<p class="apache">Copyright 2013 The Apache Software Foundation.<br />この文書は <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> のライセンスで提供されています。.</p>
274<p class="menu"><a href="/mod/">モジュール</a> | <a href="/mod/directives.html">ディレクティブ</a> | <a href="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="/glossary.html">用語</a> | <a href="/sitemap.html">サイトマップ</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
275if (typeof(prettyPrint) !== 'undefined') {
276    prettyPrint();
277}
278//--><!]]></script>
279</body></html>