‰PNG  IHDRÛ¤;œˆ®IDATxÚíÜ»n¤0€á¼ÿK¡• Š)(¦pAá‚Â… –±Ç7†LeG{ý§ §㻢|¬ïذaÆ 6lذaÆ 6lذaÆ 6lomûó$^þy¿úÝØ°ag“5bÆ 6lذaÆ 6lذa{‘í¼ 6lذaÆ ›`›µçã´}HÏFkm,›m¶Ðû¬ÓªñÑêôÒô!Ý ‹xÛ|'ܢ˟;·E:—Ôõ9­&á¶’¶}®{žv]™n&Ñ6ç íhíÕ_õ÷t¨Ú Íµ-Ò«¯šºZ;ú´Z$Û.žPÔÄøkíž)º!§o¡¡ˆ>}l³eQfJÕT±—u Ñ–µò•›åÚ†ª×\âÝX=8ÝîRÙ†4`Vwòl¾>ëÃ×ún•Gþ^›ìi¾s©Ì"msÙ$×uñÝi»ˆ?w¡bs[m©6³K4áãçO†‰¹.£4›Þ%ºÐ×/õÀßÏbëC%Šçt û‰MŸ×–– ú-lîG6±mrz2–ô¶s%»9À•s@˜¹ì-âk»9 =ìæî)ÎÝõÌåâk»B5ÕËÂ×\Ãñš+Í‚çZsÙ² åµòRnÚÂ~G§…ÉR¦¯•CŸŠí¨É ›wIcIïén7jJ°åèhÛ›NCS|ìâÓj0æªò8y½iHKÛ›Ö¶ÐkòɈ+;Sz°¶ú¨áL/µ­FÐ*\çÆÔ”Ë#"5¯Âmë2Üï[SÅ­«»Íú‹£=©g¯În‹aóP…eÚÒ“ûLÛÿ lذaÆ 6lØ^kãï̱aÆ 6lذaÆ 6lذa;ÿŠ ¶_ÚÎذaÆ 6lذaÆ 6lذaÆ ¶á¨ëœR¢ÇÆIEND®B` Apache Tutorial: CGI ã«ã‚ˆã‚‹å‹•的コンテンツ - Apache HTTP サームãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.4
<-
Apache > HTTP サーム> ドキュメンテーション > ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 2.4 > How-To / ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«

Apache Tutorial: CGI ã«ã‚ˆã‚‹å‹•的コンテンツ

翻訳済ã¿è¨€èªž:  en  |  es  |  fr  |  ja  |  ko 

ã“ã®æ—¥æœ¬èªžè¨³ã¯ã™ã§ã«å¤ããªã£ã¦ã„ã‚‹ å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚ 最近更新ã•れãŸå†…容を見るã«ã¯è‹±èªžç‰ˆã‚’ã”覧下ã•ã„。
Support Apache!

å‚ç…§

top

ã¯ã˜ã‚ã«

CGI (Common Gateway Interface) ã¯ã€ã‚¦ã‚§ãƒ–サーãƒãŒ コンテンツ生æˆã‚’ã™ã‚‹å¤–部プログラムã¨å”調ã—ã¦å‹•作ã™ã‚‹ãŸã‚ã®æ–¹æ³•ã‚’ 定義ã—ã¦ã„ã¾ã™ã€‚ãã®ãƒ—ログラムã¯ã—ã°ã—ã° CGI プログラムや CGI スクリプトã¨å‘¼ã°ã‚Œã¾ã™ã€‚CGI ã¯ã€ã‚¦ã‚§ãƒ–サイトã«å‹•的㪠コンテンツを置ããŸã‚ã®æœ€ã‚‚ç°¡å˜ã§ä¸€èˆ¬çš„ãªæ–¹æ³•ã§ã™ã€‚ã“ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¯ã€ Apache ウェブサーãƒã§ CGI を設定ã—〠CGI プログラムを書ãå§‹ã‚ã‚‹ãŸã‚ã®å…¥é–€æ›¸ã¨ãªã‚‹ã§ã—ょã†ã€‚

top

CGI を許å¯ã™ã‚‹ã‚ˆã†ã« Apache を設定ã™ã‚‹

CGI プログラムを正ã—ã動作ã•ã›ã‚‹ã«ã¯ã€CGI を許å¯ã™ã‚‹ã‚ˆã†ã« Apache ã®è¨­å®šã‚’行ã†å¿…è¦ãŒã‚りã¾ã™ã€‚ ã“れを行ãªã†ãŸã‚ã®æ–¹æ³•ãŒã„ãã¤ã‹ã‚りã¾ã™ã€‚

注: Apache ãŒå…±æœ‰ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«æ©Ÿèƒ½ç€ãã§ãƒ“ルドã•れã¦ã„ã‚‹å ´åˆã€ モジュールãŒãƒ­ãƒ¼ãƒ‰ã•れã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。 ã¤ã¾ã‚Š httpd.conf ã§ LoadModule ãŒã‚³ãƒ¡ãƒ³ãƒˆã‚¢ã‚¦ãƒˆã•れã¦ã„ãªã„ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。 正常ã«è¨­å®šã•れã¦ã„ã‚Œã°æ¬¡ã®ã‚ˆã†ã«ãªã‚‹ã¯ãšã§ã™:

LoadModule cgi_module modules/mod_cgi.so

ScriptAlias

ScriptAlias ディレクティブを使用ã—ã¦ã€ CGI プログラム用ã®ç‰¹åˆ¥ãªåˆ¥ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’ Apache ã«è¨­å®šã—ã¾ã™ã€‚ Apache ã¯ã€ã“ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªä¸­ã®å…¨ã¦ã®ãƒ•ァイルを CGI プログラムã§ã‚ã‚‹ã¨ä»®å®šã—ã¾ã™ã€‚ ãã—ã¦ã€ã“ã®ç‰¹åˆ¥ãªãƒªã‚½ãƒ¼ã‚¹ãŒã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã‹ã‚‰è¦æ±‚ã•れるã¨ã€ ãã®ãƒ—ログラムã®å®Ÿè¡Œã‚’試ã¿ã¾ã™ã€‚

ScriptAlias ディレクティブã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ä½¿ç”¨ã—ã¾ã™:

ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/

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

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

ScriptAlias ディレクトリ外㮠CGI

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

ä»»æ„ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã§ CGI ã®å®Ÿè¡Œã‚’許å¯ã™ã‚‹ã«ã¯äºŒæ®µéšŽã®è¨­å®šãŒå¿…è¦ã§ã™ã€‚ ã¾ãšã€AddHandler ã‚„ SetHandler ディレクティブã«ã‚ˆã£ã¦ cgi-script ãƒãƒ³ãƒ‰ãƒ©ãŒå¯èƒ½ã«ãªã£ã¦ã„ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ 次ã«ã€Options ディレクティブ㧠ExecCGI ãŒæŒ‡å®šã•れã¦ã„ãªã‘れã°ãªã‚Šã¾ã›ã‚“。

CGI ã®å®Ÿè¡Œã‚’å¯èƒ½ã«ã™ã‚‹ãŸã‚ã« Options を明示的ã«ä½¿ç”¨ã™ã‚‹

サーãƒã®ãƒ¡ã‚¤ãƒ³ã®è¨­å®šãƒ•ァイル中㧠Options ディレクティブを明示的ã«ä½¿ç”¨ã™ã‚‹ã“ã¨ã§ã€ç‰¹å®šã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªé…下㧠CGI ã®å®Ÿè¡Œã‚’許å¯ã™ã‚‹ã‚ˆã†ã«æŒ‡å®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™:

<Directory /usr/local/apache2/htdocs/somedir>
Options +ExecCGI
</Directory>

上記ディレクティブã¯ã€CGI ファイルã®å®Ÿè¡Œã‚’å¯èƒ½ã«ã™ã‚‹ã‚ˆã† Apache ã«ä¼ãˆã¾ã™ã€‚ã¾ãŸã€ã©ã®ãƒ•ァイル㌠CGI ファイルã‹ã‚’ サーãƒã«ä¼ãˆã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚次㮠AddHandler ディレクティブã®ä¾‹ã§ã¯ã€cgi ã¾ãŸã¯ pl ã‚’æ‹¡å¼µå­ã«æŒã¤ã™ã¹ã¦ã®ãƒ•ァイルを CGI プログラムã¨ã—ã¦ã¿ãªã™ã“ã¨ã‚’サーãƒã«ä¼ãˆã¾ã™:

AddHandler cgi-script .cgi .pl

.htaccess ファイル

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

User ディレクトリ

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

<Directory /home/*/public_html>
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>

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

<Directory /home/*/public_html/cgi-bin>
Options ExecCGI
SetHandler cgi-script
</Directory>

top

CGI プログラムを書ã

「通常ã®ã€ãƒ—ログラミング㨠CGI プログラミングã®é–“ã«ã¯ä¸»ã«äºŒã¤ã®é•ã„ãŒã‚りã¾ã™ã€‚

一ã¤ã¯ã€CGI プログラムã®ã™ã¹ã¦ã®å‡ºåŠ›ã«ã¯MIME タイプ ヘッダを付ã‘ãªã‘れã°ãªã‚Šã¾ã›ã‚“。 ã“れã¯ã©ã®ã‚ˆã†ãªç¨®é¡žã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„ã‚’å—ã‘å–ã£ã¦ã„ã‚‹ã‹ã‚’クライアントã«ç¤ºã™ HTTP ヘッダã§ã™ã€‚ã»ã¨ã‚“ã©ã®å ´åˆã§ã¯ã€æ¬¡ã®ã‚ˆã†ã«å‡ºåŠ›ã—ã¾ã™:

Content-type: text/html

ã‚‚ã†ä¸€ã¤ã¯ã€å‡ºåŠ›ã‚’ HTML ã‹ã€ãƒ–ラウザãŒè¡¨ç¤ºã™ã‚‹ã“ã¨ãŒã§ãる何ã‹ä»–ã®å½¢å¼ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ 大抵ã®å ´åˆã¯ HTML ã§ã—ょã†ãŒã€GIF イメージや他ã®éž HTML コンテンツを出力ã™ã‚‹ CGI プログラムを書ãã“ã¨ã‚‚ã‚ã‚‹ã§ã—ょã†ã€‚

ã“れら二点以外ã§ã¯ã€CGI プログラムを書ãã“ã¨ã¯ã€ ã‚ãªãŸãŒæ›¸ã„ã¦ã„ã‚‹ä»–ã®ãƒ—ログラムã¨ã‚ˆãä¼¼ã¦ã„ã‚‹ã§ã—ょã†ã€‚

最åˆã® CGI プログラム

次ã«ç¤ºã™ã®ã¯ã€ãƒ–ラウザ㫠1 行å°å­—ã™ã‚‹ CGI プログラムã®ä¾‹ã§ã™ã€‚以下を入力ã—ã€first.pl ã¨ã„ã†ãƒ•ァイルã«ä¿å­˜ã—ã€ãれを cgi-bin ディレクトリã«ç½®ã„ã¦ãã ã•ã„。

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello, World.";

Perl ã«ç²¾é€šã—ã¦ã„ãªãã¦ã‚‚〠何ãŒèµ·ã“ã‚‹ã‹ã‚’ç†è§£ã™ã‚‹ã“ã¨ã¯ã§ãã‚‹ã§ã—ょã†ã€‚1 行目ã¯ã€ /usr/bin/perl ã§è¦‹ã¤ã‘られるインタプリタ㫠ã“ã®ãƒ•ァイルを供給ã™ã‚‹ã“ã¨ã§ã“ã®ãƒ—ログラムãŒå®Ÿè¡Œã•れるã“ã¨ã‚’ Apache ã« (シェル上ã§å®Ÿè¡Œã—よã†ã¨ã—ã¦ã„ã‚‹ãªã‚‰ã°ã€ãã®ã‚·ã‚§ãƒ«ã« ) 示ã—ã¾ã™ã€‚2 行目ã¯ã€å‰è¿°ã—ãŸã¨ãŠã‚Š content-type ã®å®šç¾©ã‚’å°å­—ã—ã¾ã™ã€‚ ã“れã«ã¯å¾©å¸°æ”¹è¡Œã®äºŒã¤ã®çµ„を後ã«ä»˜åŠ ã—ã¾ã™ã€‚ ã“れã«ã‚ˆã‚Šã€ãƒ˜ãƒƒãƒ€ã®çµ‚りã«ç©ºè¡ŒãŒç½®ã‹ã‚Œã€HTTP ヘッダã®çµ‚りã¨ãƒœãƒ‡ã‚£ã®å§‹ã¾ã‚Šã‚’示ã—ã¾ã™ã€‚3 行目ã¯ã€"Hello, World." ã¨ã„ã†æ–‡å­—列をå°å­—ã—ã€ã“れã§çµ‚りã¨ãªã‚Šã¾ã™ã€‚

好ã¿ã®ãƒ–ラウザを開ãã€ã‚¢ãƒ‰ãƒ¬ã‚¹

http://www.example.com/cgi-bin/first.pl

ã‚ã‚‹ã„ã¯ãƒ•ァイルを置ã„ãŸãƒ­ã‚±ãƒ¼ã‚·ãƒ§ãƒ³ã‚’指定ã™ã‚‹ã¨ã€ Hello, World. ã¨ã„ㆠ1 行ãŒãƒ–ラウザウィンドã«ç¾ã‚Œã‚‹ã§ã—ょã†ã€‚ ãれã¯ã‚ã¾ã‚Šã‚¨ã‚­ã‚µã‚¤ãƒ†ã‚£ãƒ³ã‚°ãªã“ã¨ã§ã¯ã‚りã¾ã›ã‚“。 ã—ã‹ã—ã€ã“れãŒã†ã¾ãå‹•ã‘ã°ã€ ä»–ã®ã©ã®ã‚ˆã†ãªã‚‚ã®ã§ã‚‚å‹•ã‹ã™ã“ã¨ãŒã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚

top

ã—ã‹ã—ã€ã¾ã å‹•ã‹ãªã„ !

ウェブã‹ã‚‰ CGI プログラムã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã‚’行ãªã£ãŸã¨ã〠ブラウザã§è¦‹ã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹å››ã¤ã®åŸºæœ¬çš„ãªã“ã¨ãŒã‚りã¾ã™:

CGI プログラムã®å‡ºåŠ›
素晴らã—ã„ ! ãれã¯ã™ã¹ã¦ãŒã†ã¾ãå‹•ã„ãŸã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚ å‡ºåŠ›ãŒæ­£å¸¸ã ã‘れã©ã‚‚ã€ãƒ–ãƒ©ã‚¦ã‚¶ãŒæ­£å¸¸ã«å‡¦ç†ã—ã¦ãれãªã„å ´åˆã¯ã€ æ­£ã—ã„ Content-Type ã‚’ CGI プログラム内㧠セットã—ãŸã‹ã‚’確èªã—ã¦ãã ã•ã„。
CGI プログラムã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã€ã¾ãŸã¯ "POST Method Not Allowed" ã¨ã„ã†ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸
ã“れã¯ã€CGI プログラムを処ç†ã§ãるよㆠApache ã‚’é©åˆ‡ã«è¨­å®šã—ã¦ã„ãªã‹ã£ãŸã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚「CGI を許å¯ã™ã‚‹ã‚ˆã†ã« Apache を設定ã™ã‚‹ã€ã®ç« ã‚’読ã¿ç›´ã—〠ã‚ãªãŸãŒä½•ã‚’é–“é•ãˆãŸã‹ã‚’探ã—ã¦ã¿ã¦ãã ã•ã„。
メッセージ㌠"Forbidden" ã§å§‹ã¾ã£ã¦ã„ã‚‹
ã“れã¯ãƒ‘ーミッションã®å•題ã¨ã„ã†ã“ã¨ã‚’æ„味ã—ã¾ã™ã€‚ Apache ã®ã‚¨ãƒ©ãƒ¼ãƒ­ã‚°ã¨ã€å¾Œè¿°ã®ã€Œãƒ•ァイルã®ãƒ‘ーミッション〠ã®ç« ã‚’ãƒã‚§ãƒƒã‚¯ã—ã¦ãã ã•ã„。
"Internal Server Error" ã¨ã„ã†ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸
Apache ã®ã‚¨ãƒ©ãƒ¼ãƒ­ã‚°ã‚’ãƒã‚§ãƒƒã‚¯ã™ã‚‹ã¨ã€"Premature end of script headers" ã¨ã„ã†ãƒ­ã‚°ãŒè¨˜éŒ²ã•れã¦ã„ã‚‹ã¨æ€ã„ã¾ã™ã€‚ãã—ã¦ã€ãŠãらã CGI プログラムã«ã‚ˆã£ã¦ç”Ÿæˆã•れãŸã‚¨ãƒ©ãƒ¼ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚‚記録ã•れã¦ã„ã‚‹ã§ã—ょã†ã€‚ ã“ã®å ´åˆã€CGI プログラムãŒé©åˆ‡ãª HTTP ヘッダを出力ã§ããªã„原因を知るãŸã‚ã«ã€ 以下ã®å„ç« ã§ãƒã‚§ãƒƒã‚¯ã—ã¦ã¿ã¦ãã ã•ã„。

ファイルã®ãƒ‘ーミッション

サーãƒã¯ã‚ãªãŸã®æ¨©é™ã§å®Ÿè¡Œã•れã¦ã„ãªã„ã®ã‚’忘れãªã„よã†ã«ã€‚ ã¤ã¾ã‚Šã€èµ·å‹•ã™ã‚‹ã¨ãã€ã‚µãƒ¼ãƒã¯ç‰¹æ¨©ã‚’ã‚‚ãŸãªã„ユーザ - 通常 nobody ã‚„ www ã®æ¨©é™ã§å®Ÿè¡Œã•れã¾ã™ã€‚ã—ãŸãŒã£ã¦ã€ã‚ãªãŸãŒæ‰€æœ‰ã™ã‚‹ ファイルを実行ã™ã‚‹ã«ã¯åˆ¥ã®ãƒ‘ーミッションãŒå¿…è¦ã¨ãªã‚Šã¾ã™ã€‚ 通常ã€nobody ãŒå®Ÿè¡Œã™ã‚‹ã®ã«å分ãªãƒ‘ーミッションを与ãˆã‚‹æ–¹æ³•ã¯ã€ ファイルã«èª°ã§ã‚‚実行å¯èƒ½ã¨ã™ã‚‹ãƒ‘ーミッションを与ãˆã‚‹ã“ã¨ã§ã™:

chmod a+x first.pl

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

パス情報ã¨ç’°å¢ƒ

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

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

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

#!/usr/bin/perl

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

ã¾ãŸã€CGI プログラムãŒä»–ã®ç’°å¢ƒå¤‰æ•°ã«ä¾å­˜ã—ã¦ã„ã‚‹å ´åˆã¯ã€ãã®ç’°å¢ƒå¤‰æ•°ãŒ Apache ã‹ã‚‰æ¸¡ã•れるよã†ã«ã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚

プログラムエラー

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

cd /usr/local/apache2/cgi-bin
./first.pl

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

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

エラーログ

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

Suexec

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

suexec を使ã£ã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’調ã¹ãŸã‚ã«ã¯ apachectl -V を実行ã—ã¦ã€SUEXEC_BIN ã®å ´æ‰€ã‚’調ã¹ã¦ãã ã•ã„。 Apache ãŒãã“ã« suexec ã®ãƒã‚¤ãƒŠãƒªã‚’発見ã—ãŸå ´åˆã¯ã€suexec ㌠使用ã•れã¾ã™ã€‚

suexec を完全ã«ç†è§£ã—ã¦ã„ãªã„é™ã‚Šã€ä½¿ã†ã¹ãã§ã¯ã‚りã¾ã›ã‚“。 suexec を無効ã«ã™ã‚‹ã«ã¯ã€SUEXEC_BIN ã‹ã‚‰æŒ‡ã•れã¦ã„ã‚‹ suexec ãƒã‚¤ãƒŠãƒªã‚’削除 (ã‹åå‰ã‚’変更) ã™ã‚‹ã ã‘ã§ã™ã€‚ suexec を読んã å¾Œã§ã€ã¾ã ãれを 使ã„ãŸã„ã®ã§ã‚れã°ã€suexec -V を実行ã—㦠suexec 㮠ログファイルã®ä½ç½®ã‚’調ã¹ã€ãã®ãƒ­ã‚°ãƒ•ァイルを使ã£ã¦ãƒãƒªã‚·ãƒ¼é•åã‚’ 見ã¤ã‘ã¦ãã ã•ã„。

top

è£ã§ä½•ãŒèµ·ã“ã£ã¦ã„ã‚‹ã®ã‹?

CGI プログラミングã«ç¿’熟ã™ã‚‹ã¨ã€ è£ã§èµ·ã“ã£ã¦ã„ã‚‹ã“ã¨ã«ã¤ã„ã¦æ›´ã«ç†è§£ã™ã‚‹ã“ã¨ã®å½¹ã«ç«‹ã¡ã¾ã™ã€‚ ブラウザã¨ã‚µãƒ¼ãƒãŒã©ã®ã‚ˆã†ã«ç›¸äº’通信ã™ã‚‹ã‹ã«ã¤ã„ã¦ã¯ç‰¹ã«ãã†ã§ã™ã€‚ ãªãœãªã‚‰ã€"Hello, World." ã‚’å°å­—ã™ã‚‹ãƒ—ログラムを書ãã“ã¨ã¯ãŠãŠã„ã«çµæ§‹ã§ã™ãŒã€ ãれã¯ç‰¹ã«æœ‰ç›Šã§ã¯ã‚りã¾ã›ã‚“。

環境変数

環境変数ã¯ã€ ã‚ãªãŸãŒã‚³ãƒ³ãƒ”ュータを使ã†ã¨ãã«è¾ºã‚Šã«å­˜åœ¨ã—ã¦ã„る値ã§ã™ã€‚ ãれらã¯ã€ãƒ‘ス (コマンドをタイプã—ãŸã¨ãã«å®Ÿè¡Œã™ã‚‹å®Ÿéš›ã®ãƒ•ァイルを探ã—出ã™ã¨ã“ã‚)〠ユーザåã€ç«¯æœ«åž‹ãªã©ã®ã‚ˆã†ãªä¾¿åˆ©ãªã‚‚ã®ã§ã™ã€‚ é€šå¸¸ã€æ™®æ®µä½¿ç”¨ã—ã¦ã„る環境変数ã®å®Œå…¨ãªãƒªã‚¹ãƒˆã‚’調ã¹ã‚‹ã«ã¯ã€ コマンドプロンプト㧠env を入力ã—ã¾ã™ã€‚

CGI ã®å‡¦ç†ä¸­ã€ã‚µãƒ¼ãƒã¨ãƒ–ラウザも環境変数を設定ã—〠ãれã«ã‚ˆã‚Šç›¸äº’ã«é€šä¿¡ã™ã‚‹ã“ã¨ãŒã§ãるよã†ã«ãªã‚Šã¾ã™ã€‚ ãã®ç’°å¢ƒå¤‰æ•°ã¯ã€ãƒ–ラウザタイプ (Netscape, IE, Lynx)ã€ã‚µãƒ¼ãƒã‚¿ã‚¤ãƒ— (Apache, IIS, WebSite)ã€å®Ÿè¡Œã•れã¦ã„ã‚‹ CGI プログラムã®åå‰ãªã©ã§ã™ã€‚

ã“れらã®å¤‰æ•°ã¯ CGI プログラマãŒä½¿ç”¨ã§ãã¾ã™ã€‚ ãã—ã¦ã€ãれã¯ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã¨ã‚µãƒ¼ãƒã®é€šä¿¡ã®è©±ã®åŠåˆ†ã§ã™ã€‚ å¿…è¦ãªå¤‰æ•°ã®å®Œå…¨ãªãƒªã‚¹ãƒˆã¯ http://hoohoo.ncsa.uiuc.edu/cgi/env.html ã«ã‚りã¾ã™ã€‚

以下ã®å˜ç´”㪠Perl CGI プログラムã¯ã€æ¸¡ã•れる全ã¦ã®ç’°å¢ƒå¤‰æ•°ã‚’表示ã—ã¾ã™ã€‚åŒæ§˜ã®ãƒ—ログラムã¯ã€ Apache ディストリビューション㮠cgi-bin ディレクトリã«äºŒã¤å«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ ã„ãã¤ã‹ã®å¤‰æ•°ãŒå¿…é ˆã§ã‚りã€ã„ãã¤ã‹ã¯ä»»æ„ã§ã‚ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。 ãã—ã¦ã€å…¬å¼ã®ãƒªã‚¹ãƒˆã«ã¯ãªã„ã„ãã¤ã‹ã®å¤‰æ•°ãŒè¡¨ç¤ºã•れã¦ã„ã‚‹ã‹ã‚‚ã—れã¾ã›ã‚“。 ã•らã«ã€Apache ã¯ãƒ‡ãƒ•ォルトã§ç”¨æ„ã•れã¦ã„る基本的ãªã‚‚ã®ã« ã‚ãªãŸè‡ªèº«ã®ç’°å¢ƒå¤‰æ•°ã‚’加ãˆã‚‹ãŸã‚ã®ã€ 多ãã®ç•°ãªã‚‹æ–¹æ³•を用æ„ã—ã¦ã—ã¾ã™ã€‚

#!/usr/bin/perl
print "Content-type: text/html\n\n";
foreach $key (keys %ENV) {
print "$key --> $ENV{$key}<br>";
}

STDIN 㨠STDOUT

サーãƒã¨ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆé–“ã®ã‚‚ã†ä¸€ã¤ã®é€šä¿¡ã¯ã€æ¨™æº–入力 (STDIN)ã¨æ¨™æº–出力 (STDOUT) を通ã˜ã¦è¡Œãªã‚れã¾ã™ã€‚é€šå¸¸ã®æ–‡è„ˆã«ãŠã„ã¦ã€STDIN ã¯ã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ã‚„プログラムãŒå‹•作ã™ã‚‹ãŸã‚ã«ä¸Žãˆã‚‰ã‚Œã‚‹ãƒ•ァイルをæ„味ã—〠STDOUT ã¯é€šå¸¸ã‚³ãƒ³ã‚½ãƒ¼ãƒ«ã¾ãŸã¯ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã‚’æ„味ã—ã¾ã™ã€‚

ウェブフォームã‹ã‚‰ CGI プログラムã¸POST ã—ãŸã¨ãã€ãƒ•ォームã®ãƒ‡ãƒ¼ã‚¿ã¯ç‰¹åˆ¥ãªãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã§æŸã­ã‚‰ã‚Œã€ STDIN を通ã—ã¦ã€CGI プログラムã«å¼•ãæ¸¡ã•れã¾ã™ã€‚ プログラムã¯ãƒ‡ãƒ¼ã‚¿ãŒã‚­ãƒ¼ãƒœãƒ¼ãƒ‰ ã‚‚ã—ãã¯ãƒ•ァイルã‹ã‚‰æ¥ã¦ã„ãŸã‹ã®ã‚ˆã†ã«å‡¦ç†ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

「特別ãªãƒ•ォーマットã€ã¯ã¨ã¦ã‚‚å˜ç´”ã§ã™ã€‚フィールドåã¨å€¤ã¯ã‚¤ã‚³ãƒ¼ãƒ« (=) ã§çµã°ã‚Œã¾ã™ã€‚ãã—ã¦å€¤ã®çµ„ã¯ã‚¢ãƒ³ãƒ‘サンド (&) ã§çµã°ã‚Œã¾ã™ã€‚ スペースã€ã‚¢ãƒ³ãƒ‘サンドã€ã‚¤ã‚³ãƒ¼ãƒ«ã®ã‚ˆã†ãªé¢å€’ãªæ–‡å­—ã¯ã€ ãれらãŒå‹•作を駄目ã«ã—ãªã„よã†ã«ãã®æ–‡å­—ã«ç›¸å½“ã™ã‚‹ 16 進ã«å¤‰æ›ã•れã¾ã™ã€‚ 全データ文字列ã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™:

name=Rich%20Bowen&city=Lexington&state=KY&sidekick=Squirrel%20Monkey

時々ã€ã“ã®ã‚ˆã†ãªæ–‡å­—列㌠URL ã«ä»˜åŠ ã•れるã®ã‚’見るã§ã—ょã†ã€‚ãã®å ´åˆã€ã‚µãƒ¼ãƒã¯ QUERY_STRING ã¨ã„ã†ç’°å¢ƒå¤‰æ•°ã«ãã®æ–‡å­—列を入れã¾ã™ã€‚ãれ㯠GET リクエストã¨å‘¼ã°ã‚Œã¾ã™ã€‚ HTML フォームã§ã¯ã€ãƒ‡ãƒ¼ã‚¿ã‚’渡ã™ãŸã‚ã« GET 㨠POST ã®ã©ã¡ã‚‰ã‚’使用ã™ã‚‹ã‹ã‚’ã€FORM ã‚¿ã‚°ã® METHOD 属性ã®è¨­å®šã§æŒ‡å®šã—ã¾ã™ã€‚

CGI プログラムã¯ã€ãã®æ–‡å­—列を役ã«ç«‹ã¤æƒ…å ±ã«åˆ†å‰²ã™ã‚‹è²¬ä»»ãŒã‚りã¾ã™ã€‚ 幸ã„ã«ã‚‚ã€ãã®ãƒ‡ãƒ¼ã‚¿å‡¦ç†ã‚’助ã‘るライブラリやモジュールãŒå­˜åœ¨ã—ã¾ã™ã€‚ ã“れらã¯ã€CGI プログラムã®ä»–ã®é¢ã§ã‚‚åŒæ§˜ã«å½¹ã«ç«‹ã¡ã¾ã™ã€‚

top

CGI モジュール/ライブラリ

CGI プログラムを書ãã¨ãã€é¢å€’ãªä»•事ã®å¤§éƒ¨åˆ†ã‚’ã—ã¦ãれる コードライブラリã¾ãŸã¯ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’使ã†ã“ã¨ã‚’検討ã™ã¹ãã§ã™ã€‚ ã“れã¯ã‚¨ãƒ©ãƒ¼ã‚’減らã—ã€æ—©ã„開発ã«ã¤ãªãŒã‚Šã¾ã™ã€‚

Perl ã§ CGI プログラムを書ã„ã¦ã„ã‚‹ãªã‚‰ã€ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã¯ CPAN ã§æä¾›ã•れã¦ã„ã¾ã™ã€‚ ã“ã®ç›®çš„ã®ãŸã‚ã®æœ€ã‚‚æ™®åŠã—ã¦ã„るモジュール㯠CGI.pm ã§ã™ã€‚ CGI::Lite も検討ã—ã¾ã—ょã†ã€‚ã“れã¯ã€ã»ã¨ã‚“ã©ã®ãƒ—ログラム ã«ãŠã„ã¦å¿…è¦ã¨ã™ã‚‹ã™ã¹ã¦ã®æ©Ÿèƒ½ã®æœ€å°ã‚»ãƒƒãƒˆã®å®Ÿè£…ã§ã™ã€‚

C ã§ CGI プログラムを書ã„ã¦ã„ã‚‹ãªã‚‰ã€ã„ã‚ã„ã‚㪠オプションãŒã‚りã¾ã™ã€‚ã“れらã®å†…ã®ä¸€ã¤ã¯ http://www.boutell.com/cgic/ ã§æä¾›ã•れã¦ã„ã‚‹ CGIC ライブラリã§ã™ã€‚

top

æ›´ãªã‚‹æƒ…å ±

CGI ã«é–¢ã™ã‚‹æƒ…å ±ã¯ã‚¦ã‚§ãƒ–ã§æ•°å¤šãæä¾›ã•れã¦ã„ã¾ã™ã€‚CGI ã®å•題ã«ã¤ã„ã¦ã¯ Usenet ã® comp.infosystems.www.authoring.cgi ã§ã€ ä»–ã®ãƒ¦ãƒ¼ã‚¶ã¨è«–è­°ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚HTML Writers Guide ã® -servers メーリングリストã¯ã€ã‚ãªãŸã®è³ªå•ã«å›žç­”ã—ã¦ãれるå‰å¤§ãªãƒªã‚½ãƒ¼ã‚¹ã§ã™ã€‚ http://www.hwg.org/lists/hwg-servers/ ã§æ›´ã«å¤šãを探ã—出ã™ã“ã¨ãŒã§ãã¾ã™ã€‚

ãã—ã¦ã‚‚ã¡ã‚ã‚“ã€ãŠãらã CGI プログラムã®å‹•作ã«é–¢ã™ã‚‹è©³ç´°ã®å…¨ã¦ãŒè¨˜è¿°ã•れã¦ã„ã‚‹ CGI ã®ä»•様を読むã¹ãã§ã™ã€‚オリジナルãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ NCSA ã§ã€ã‚¢ãƒƒãƒ—デートã•れãŸãƒ‰ãƒ©ãƒ•トを Common Gateway Interface RFC プロジェクトã§å‚ç…§ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

CGI ã®å•題ã«ã¤ã„ã¦ã€åŠ ã‚ã£ã¦ã„るメーリングリストã¾ãŸã¯ãƒ‹ãƒ¥ãƒ¼ã‚¹ グループã«è³ªå•ã‚’é€ã‚‹ã¨ãã€èµ·ã“ã£ãŸã‚‚ã®ã€èµ·ã“ã£ã¦ã»ã—ã„ã“ã¨ã€ 実際ã«èµ·ã“ã£ãŸã“ã¨ãŒã©ã†é•ã†ã‹ã€ä½¿ç”¨ã—ã¦ã„るサーãƒã€ CGI プログラムを記述ã—ã¦ã„る言語ã«é–¢ã™ã‚‹ååˆ†ãªæƒ…å ±ã¨ã€ å¯èƒ½ã§ã‚れã°å•題ã®ã‚³ãƒ¼ãƒ‰ã‚’æä¾›ã™ã‚‹ã‚ˆã†ã«ã—ã¦ãã ã•ã„。 ãã†ã™ã‚‹ã“ã¨ã§ã€å•題ãŒã‚ˆã‚Šé–“å˜ã«è¦‹ã¤ã‹ã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚

Apache ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã«ãŠã„ã¦å•題を発見ã—ãŸã“ã¨ã‚’確信ã—ã¦ã„ãªã„é™ã‚Šã€ CGI ã®å•題ã«é–¢ã™ã‚‹è³ªå•ã‚’ Apache ãƒã‚°ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«é€ã‚‹ã¹ãã§ãªã„ ã“ã¨ã«æ³¨ç›®ã—ã¦ãã ã•ã„。

翻訳済ã¿è¨€èªž:  en  |  es  |  fr  |  ja  |  ko 

top

コメント

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed 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 Libera.chat, or sent to our mailing lists.