<?xml version="1.0" encoding="iso-2022-jp"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Apache Tutorial: CGI による動的コンテンツ - Apache HTTP サーバ</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p>
<p class="apache">Apache HTTP サーバ バージョン 2.0</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<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-project/">ドキュメンテーション</a> &gt; <a href="../">バージョン 2.0</a></div><div id="page-content"><div id="preamble"><h1>Apache Tutorial: CGI による動的コンテンツ</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/howto/cgi.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../ja/howto/cgi.html" title="Japanese">&nbsp;ja&nbsp;</a></p>
</div>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#intro">はじめに</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#configuring">CGI を許可するように Apache を設定する</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#writing">CGI プログラムを書く</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#troubleshoot">しかし、まだ動かない !</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#behindscenes">裏で何が起こっているのか?</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#libraries">CGI モジュール/ライブラリ</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#moreinfo">更なる情報</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="intro" id="intro">はじめに</a></h2>
    

    <table class="related"><tr><th>関連モジュール</th><th>関連ディレクティブ</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code></li><li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code></li><li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code></li></ul></td></tr></table>

    <p>CGI (Common Gateway Interface) は、ウェブサーバが
    コンテンツ生成をする外部プログラムと協調して動作するための方法を
    定義しています。そのプログラムはしばしば CGI プログラムや
    CGI スクリプトと呼ばれます。CGI は、ウェブサイトに動的な
    コンテンツを置くための最も簡単で一般的な方法です。このドキュメントは、
    Apache ウェブサーバで CGI を設定し、
    CGI プログラムを書き始めるための入門書となるでしょう。</p>
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="configuring" id="configuring">CGI を許可するように Apache を設定する</a></h2>
    

    <p>CGI プログラムを正しく動作させるには、CGI を許可するように
    Apache の設定を行う必要があります。
    これを行なうための方法がいくつかあります。</p>

    <h3><a name="scriptalias" id="scriptalias">ScriptAlias</a></h3>
      

      <p><code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
      ディレクティブを使用して、
      CGI プログラム用の特別な別ディレクトリを Apache に設定します。
      Apache は、このディレクトリ中の全てのファイルを CGI
      プログラムであると仮定します。
      そして、この特別なリソースがクライアントから要求されると、
      そのプログラムの実行を試みます。</p>

      <p><code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
      ディレクティブは以下のように使用します:</p>

      <div class="example"><p><code>ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/</code></p></div>

      <p>デフォルト位置に Apache をインストールしたならば、
      この例はデフォルト状態の <code>httpd.conf</code>
      設定ファイルに含まれています。<code>ScriptAlias</code>
      ディレクティブは、URL の前に付加するディレクトリを定義する
      <code>Alias</code> ディレクティブとかなり似ています。
      <code>Alias</code> と <code>ScriptAlias</code> は通常、
      <code>DocumentRoot</code>
      ディレクトリ外のディレクトリのために使用されます。
      <code>Alias</code> と <code>ScriptAlias</code> との差は、
      <code>ScriptAlias</code> が接頭辞で始まるすべての URL は
      CGI プログラムとみなされるという追加の意味を含んでいることです。
      従って、上記の例では、<code>/cgi-bin/</code>
      で始まるリソースへのあらゆるリクエストに対して、ディレクトリ
      <code>/usr/local/apache/cgi-bin/</code> から提供し、それらを
      CGI プログラムとして扱うよう Apache に示します。</p>

      <p>例えば、URL <code>http://dev.rcbowen.com/cgi-bin/test.pl</code>
      が要求された場合、Apache は ファイル
      <code>/usr/local/apache/cgi-bin/test.pl</code>
      を実行し、その出力を返すことを試みます。
      もちろん、ファイルが存在し、実行可能であり、決められた方法で出力を返します。
      そうでなければ、Apache はエラーメッセージを返します。</p>
    

    <h3><a name="nonscriptalias" id="nonscriptalias">ScriptAlias ディレクトリ外の CGI</a></h3>
      

      <p>CGI プログラムは、セキュリティ上の理由から <code>ScriptAlias</code>
      されたディレクトリに制限されることがしばしばあります。この方法により、
      CGI プログラムを使用できるユーザを管理者が厳しく制御することができます。
      しかしながら、適切なセキュリティ事前対策がとられるならば、CGI
      プログラムを任意のディレクトリで実行できないようにする理由はありません。
      例えば、ユーザに <code>UserDir</code> ディレクティブで
      彼らのホームディレクトリ配下にウェブコンテンツを持たせたいとします。
      もし、彼らが CGI プログラムを持つことを望んでいても、メインの
      <code>cgi-bin</code> ディレクトリへのアクセスができない場合、
      CGI プログラムを実行することができる他の場所が必要になります。</p>
    

    <h3><a name="options" id="options">CGI の実行を可能にするために Options を明示的に使用する</a></h3>
      

      <p>サーバのメインの設定ファイル中で <code>Options</code>
      ディレクティブを明示的に使用することで、特定のディレクトリ配下で
      CGI の実行を許可するように指定することができます:</p>

      <div class="example"><p><code>&lt;Directory /usr/local/apache/htdocs/somedir&gt; <br />
      Options +ExecCGI<br />
      &lt;/Directory&gt;</code></p></div>

      <p>上記ディレクティブは、CGI ファイルの実行を可能にするよう
      Apache に伝えます。また、どのファイルが CGI ファイルかを
      サーバに伝える必要があります。次の <code>AddHandler</code>
      ディレクティブの例では、<code>cgi</code> または <code>pl</code>
      を拡張子に持つすべてのファイルを CGI
      プログラムとしてみなすことをサーバに伝えます:</p>

      <div class="example"><p><code>AddHandler cgi-script cgi pl</code></p></div>
    

    <h3><a name="htaccess" id="htaccess">.htaccess files</a></h3>
      

      <p><code>.htaccess</code>
      ファイルは、ディレクトリ毎にディレクティブを指定する方法です。
      Apache は、リソースを提供するときに、
      提供するファイルが置かれているディレクトリ中の <code>.htaccess</code>
      というファイルを参照します。そのファイルを発見したら、
      その中で発見されたディレクティブが適用されます。
      <code>.htaccess</code> ファイルは、<code>AllowOverride</code>
      ディレクティブの指定により使えるようになります。
      <code>AllowOverride</code> ディレクティブは、<code>.htaccess</code>
      ファイルで設定できるディレクティブのタイプを指定します。
      <code>AllowOverride</code> ディレクティブの指定がない場合、
      まったく使えません。CGI の実行を許可するために必要となる
      ディレクティブを指定可能にするには、
      以下の設定がサーバのメインの設定で必要になります:</p>

      <div class="example"><p><code>AllowOverride Options</code></p></div>

      <p><code>.htaccess</code>
      ファイルでは、次のディレクティブが必要となります:</p>

      <div class="example"><p><code>Options +ExecCGI</code></p></div>

      <p>この設定では、このディレクトリにおける CGI
      プログラムの実行を許可するよう Apache に伝えます。</p>
    
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="writing" id="writing">CGI プログラムを書く</a></h2>
    

    <p>「通常の」プログラミングと CGI
    プログラミングの間には主に二つの違いがあります。</p>

    <p>一つは、CGI プログラムのすべての出力には MIME-type
    ヘッダを付けなければなりません。
    これはどのような種類のコンテンツを受け取っているかをクライアントに示す
    HTTP ヘッダです。ほとんどの場合では、次のように出力します:</p>

    <div class="example"><p><code>Content-type: text/html</code></p></div>

    <p>もう一つは、出力を HTML
    か、ブラウザが表示することができる何か他の形式にする必要があります。
    大抵の場合は HTML でしょうが、GIF イメージや他の非 HTML
    コンテンツを出力する CGI プログラムを書くこともあるでしょう。</p>

    <p>これら二点以外では、CGI プログラムを書くことは、
    あなたが書いている他のプログラムとよく似ているでしょう。</p>

    <h3><a name="firstcgi" id="firstcgi">最初の CGI プログラム</a></h3>
      

      <p>次に示すのは、ブラウザに 1 行印字する CGI
      プログラムの例です。以下を入力し、<code>first.pl</code>
      というファイルに保存し、それを <code>cgi-bin</code>
      ディレクトリに置いてください。</p>

      <div class="example"><p><code>#!/usr/bin/perl<br />
      print "Content-type: text/html\n\n";<br />
      print "Hello, World.";
      </code></p></div>

      <p>Perl に精通していなくても、
      何が起こるかを理解することはできるでしょう。1 行目は、
      <code>/usr/bin/perl</code> で見つけられるインタプリタに
      このファイルを供給することでこのプログラムが実行されることを
      Apache に (シェル上で実行しようとしているならば、そのシェルに ) 
      示します。2 行目は、前述したとおり content-type の定義を印字します。
      これには復帰改行の二つの組を後に付加します。
      これにより、ヘッダの終りに空行が置かれ、HTTP
      ヘッダの終りとボディの始まりを示します。3 行目は、``Hello, World.''
      という文字列を印字し、これで終りとなります。</p>

      <p>好みのブラウザを開き、アドレス</p>

      <div class="example"><p><code>http://www.example.com/cgi-bin/first.pl</code></p></div>

      <p>あるいはファイルを置いたロケーションを指定すると、
      <code>Hello, World.</code>
      という 1 行がブラウザウィンドに現れるでしょう。
      それはあまりエキサイティングなことではありません。
      しかし、これがうまく動けば、
      他のどのようなものでも動かすことができるようになります。</p>
    
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="troubleshoot" id="troubleshoot">しかし、まだ動かない !</a></h2>
    

    <p>ウェブから CGI プログラムへのアクセスを行なったとき、
    ブラウザで見る可能性がある四つの基本的なことがあります:</p>

    <dl>
      <dt>CGI プログラムの出力</dt>

      <dd>素晴らしい ! それはすべてがうまく動いたことを意味します。
      </dd>

      <dt>CGI プログラムのソースコード、または "POST Method Not Allowed"
      というメッセージ</dt> 

      <dd>これは、CGI プログラムを処理できるよう Apache
      を適切に設定していなかったことを意味します。<a href="#configuringapachetopermitcgi">「CGI を許可するように
      Apache を設定する」</a>の章を読み直し、
      あなたが何を間違えたかを探してみてください。
      </dd>

      <dt>メッセージが "Forbidden" で始まっている</dt>

      <dd>これはパーミッションの問題ということを意味します。
      <a href="#errorlogs">Apache のエラーログ</a>と、後述の<a href="#filepermissions">「ファイルのパーミッション」</a>
      の章をチェックしてください。
      </dd>

      <dt>"Internal Server Error" というメッセージ</dt>

      <dd><a href="#errorlogs">Apache
      のエラーログ</a>をチェックすると、"Premature end of script headers"
      というログが記録されていると思います。そして、おそらく CGI
      プログラムによって生成されたエラーメッセージも記録されているでしょう。
      この場合、CGI プログラムが適切な
      HTTP ヘッダを出力できない原因を知るために、
      以下の各章でチェックしてみてください。</dd>
    </dl>

    <h3><a name="permissions" id="permissions">ファイルのパーミッション</a></h3>
      

      <p>サーバはあなたの権限で実行されていないのを忘れないように。
      つまり、起動するとき、サーバは特権をもたないユーザ - 通常 ``nobody''
      や ``www'' の権限で実行されます。したがって、あなたが所有する
      ファイルを実行するには別のパーミッションが必要となります。
      通常、``nobody'' が実行するのに十分なパーミッションを与える方法は、
      ファイルに誰でも実行可能とするパーミッションを与えることです:</p>

      <div class="example"><p><code>chmod a+x first.pl</code></p></div>

      <p>また、もしあなたのプログラムが他のファイルを読み書きするならば、
      それらのファイルは、これが可能となる正しいパーミッション
      を持っている必要があります。</p>

      <p>これに対する例外は、サーバが <a href="../suexec.html">suexec</a>
      を使用するよう設定されている場合です。suexec は、CGI
      プログラムが置かれているバーチャルホストまたはユーザの
      ホームディレクトリによって、異なるユーザ権限で実行されるようにします。
      suexec はとても厳しいパーミッションのチェックがあり、
      そのチェックを通過できないと "Internal Server Error" となり、その
      CGI プログラムの実行は失敗します。
      この場合、どのセキュリティチェックが失敗しているのかを知るために
      suexec ログファイルをチェックする必要があります。</p>
    

    <h3><a name="pathinformation" id="pathinformation">パス情報</a></h3>
      

      <p>コマンドラインからプログラムを実行するとき、
      意識しなくてもシェルに渡される情報があります。
      例えば、参照するファイルのためにどこを検索したらよいかを
      シェルに伝えるパスがあります。</p>

      <p>プログラムが CGI プログラムとしてウェブサーバによって実行されるとき、
      それはパスを持ちません。CGI プログラム内で呼び出すあらゆるプログラム
      (例えば、'sendmail' のようなもの) は、
      フルパスで指定する必要があるでしょう。それにより、CGI
      プログラムを実行しようとしたとき、
      シェルはそのようなプログラムを見つけることができます。</p>

      <p>同様なことは、スクリプトのインタプリタ (しばしば <code>perl</code>)
      へのパスで、CGI プログラムの 1 行目に次のように示されます:</p>

      <div class="example"><p><code>#!/usr/bin/perl</code></p></div>

      <p>これがインタープリタへの実際のパスであることを確実にしておきます。</p>
    

    <h3><a name="syntaxerrors" id="syntaxerrors">構文エラー</a></h3>
      

      <p>CGI
      プログラムが失敗するのは大抵、プログラム自身に問題がある場合です。
      一度 CGI の使い方を理解し、前述の二つの誤りを犯していないならば、
      まず間違いなくそうでしょう。ブラウザを通してテストを行う前に必ず、
      コマンドラインからプログラムの実行を試しなさい。
      これにより、大抵の問題が起こらなくなります。</p>
    

    <h3><a name="errorlogs" id="errorlogs">エラーログ</a></h3>
      

      <p>エラーログは友達です。
      全てのうまくいかないことは、エラーログにメッセージを生成します。
      必ずそれを最初に見るべきです。
      もし、あなたがウェブサイトを主催している場所が
      エラーログの参照を許していないならば、きっと他のサイトで主催するべきです。
      エラーログの読み方を学ぶことで、ほとんど全ての問題が迅速に確認され、
      迅速に解決されるということが分かるでしょう。</p>
    
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="behindscenes" id="behindscenes">裏で何が起こっているのか?</a></h2>
    

    <p>CGI プログラミングに熟達すると、
    裏で起こっていることについて更に理解することは有益になるでしょう。
    ブラウザとサーバがどのように相互通信するかについては特にそうです。
    なぜなら、``Hello, World.''
    を印字するプログラムを書くことはまことに結構ですが、
    それは特に有益ではありません。</p>

    <h3><a name="env" id="env">環境変数</a></h3>
      

      <p>環境変数は、
      あなたがコンピュータを使うときに辺りに存在している値です。
      それらは、パス
      (コマンドをタイプしたときに実行する実際のファイルを探し出すところ)、
      ユーザ名、端末型などのような便利なものです。
      通常の、毎日の環境変数の完全なリストを調べるには、コマンドプロンプトで
      <code>env</code> を入力します。</p>

      <p>CGI の処理中、サーバとブラウザも環境変数を設定し、
      それにより相互に通信することができるようになります。
      その環境変数は、ブラウザタイプ (Netscape, IE, Lynx)、サーバタイプ
      (Apache, IIS, WebSite)、実行されている CGI
      プログラムの名前などのようなものです。</p>

      <p>これらの変数は CGI プログラマが使用することができます。
      そして、それはクライアントとサーバの通信の話の半分です。
      必要な変数の完全なリストは <a href="http://hoohoo.ncsa.uiuc.edu/cgi/env.html">http://hoohoo.ncsa.uiuc.edu/cgi/env.html</a> にあります。</p>

      <p>以下の単純な Perl CGI
      プログラムは、渡される全ての環境変数を表示します。同様のプログラムは、
      Apache ディストリビューションの <code>cgi-bin</code>
      ディレクトリに二つ含まれています。
      いくつかの変数が必須であり、いくつかは任意であることに注意してください。
      そして、公式のリストにはないいくつかの変数が表示されているかもしれません。
      さらに、Apache はデフォルトで用意されている基本的なものに
      <a href="../env.html">あなた自身の環境変数を加える</a>ための、
      多くの異なる方法を用意してします。</p>

      <div class="example"><p><code>
      #!/usr/bin/perl<br />
      print "Content-type: text/html\n\n";<br />
      foreach $key (keys %ENV) {<br />
        print "$key --&gt; $ENV{$key}&lt;br&gt;";<br />
      }</code></p></div>
    

    <h3><a name="stdin" id="stdin">STDIN と STDOUT</a></h3>
      

      <p>サーバとクライアント間のもう一つの通信は、標準入力
      (<code>STDIN</code>)と標準出力 (<code>STDOUT</code>)
      を通じて行なわれます。通常の文脈において、<code>STDIN</code>
      はキーボードやプログラムが動作するために与えられるファイルを意味し、
      <code>STDOUT</code> は通常コンソールまたはスクリーンを意味します。</p>

      <p>ウェブフォームから CGI プログラムへ<code>POST</code>
      したとき、フォームのデータは特別なフォーマットで束ねられ、
      <code>STDIN</code> を通して、CGI プログラムに引き渡されます。
      プログラムはデータがキーボード
      もしくはファイルから来ていたかのように処理することができます。</p>

      <p>「特別なフォーマット」はとても単純です。フィールド名と値はイコール
      (=) で結ばれます。そして値の組はアンパサンド (&amp;) で結ばれます。
      スペース、アンパサンド、イコールのような面倒な文字は、
      それらが動作を駄目にしないようにその文字に相当する 16 進に変換されます。
      全データ文字列は、以下のようになります:
      </p>

      <div class="example"><p><code>
      name=Rich%20Bowen&amp;city=Lexington&amp;state=KY&amp;sidekick=Squirrel%20Monkey
      </code></p></div>

      <p>時々、このような文字列が URL
      に付加されるのを見るでしょう。その場合、サーバは
      <code>QUERY_STRING</code> という環境変数にその文字列を入れます。それは
      <code>GET</code> リクエストと呼ばれます。
      HTML フォームでは、データを渡すために <code>GET</code> と
      <code>POST</code> のどちらを使用するかを、<code>FORM</code> タグの
      <code>METHOD</code> 属性の設定で指定します。</p>

      <p>CGI プログラムは、その文字列を役に立つ情報に分割する責任があります。
      幸いにも、そのデータ処理を助けるライブラリやモジュールが存在します。
      これらは、CGI プログラムの他の面でも同様に役に立ちます。</p>
    
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="libraries" id="libraries">CGI モジュール/ライブラリ</a></h2>
    

    <p>CGI プログラムを書くとき、面倒な仕事の大部分をしてくれる
    コードライブラリまたはモジュールを使うことを検討すべきです。
    これはエラーを減らし、早い開発につながります。</p>

    <p>Perl で CGI プログラムを書いているなら、モジュールは <a href="http://www.cpan.org/">CPAN</a> で提供されています。
    この目的のための最も普及しているモジュールは CGI.pm です。
    CGI::Lite も検討しましょう。これは、ほとんどのプログラム
    において必要とするすべての機能の最小セットの実装です。</p>

    <p>C で CGI プログラムを書いているなら、いろいろな
    オプションがあります。これらの内の一つは <a href="http://www.boutell.com/cgic/">http://www.boutell.com/cgic/</a>
    で提供されている CGIC ライブラリです。</p>
  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="moreinfo" id="moreinfo">更なる情報</a></h2>
    

    <p>CGI に関する情報はウェブで数多く提供されています。CGI
    の問題については Usenet の comp.infosystems.www.authoring.cgi
    で、他のユーザと論議することができます。HTML Writers Guide の
    -servers メーリングリストは、あなたの質問に回答してくれる偉大なリソースです。
    <a href="http://www.hwg.org/lists/hwg-servers/">http://www.hwg.org/lists/hwg-servers/</a>
    で更に多くを探し出すことができます。</p>

    <p>そしてもちろん、おそらく CGI
    プログラムの動作に関する詳細の全てが記述されている
    CGI の仕様を読むべきです。オリジナルバージョンを
    <a href="http://hoohoo.ncsa.uiuc.edu/cgi/interface.html">NCSA</a>
    で、アップデートされたドラフトを
    <a href="http://web.golux.com/coar/cgi/">Common Gateway Interface RFC
    プロジェクト</a>で参照することができます。</p>

    <p>CGI の問題について、加わっているメーリングリストまたはニュース
    グループに質問を送るとき、起こったもの、起こってほしいこと、
    実際に起こったことがどう違うか、使用しているサーバ、
    CGI プログラムを記述している言語に関する十分な情報と、
    可能であれば問題のコードを提供するようにしてください。
    そうすることで、問題がより間単に見つかるようになります。</p>

    <p>Apache のソースコードにおいて問題を発見したことを確信していない限り、
    CGI の問題に関する質問を Apache
    バグデータベースに<strong>送るべきでない</strong>
    ことに注目してください。</p>
  </div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/howto/cgi.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../ja/howto/cgi.html" title="Japanese">&nbsp;ja&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Maintained by the <a href="http://httpd.apache.org/docs-project/">Apache HTTP Server Documentation Project</a></p>
<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p></div>
</body></html>