翻訳æ¸ã¿è¨èª: en | es | fr | ja | ko
ãã®æ¥æ¬èªè¨³ã¯ãã§ã«å¤ããªã£ã¦ãã å¯è½æ§ãããã¾ãã æè¿æ´æ°ãããå 容ãè¦ãã«ã¯è±èªçãã覧ä¸ããã
ã¯ããã«CGI (Common Gateway Interface) ã¯ãã¦ã§ããµã¼ãã ã³ã³ãã³ãçæãããå¤é¨ããã°ã©ã ã¨å調ãã¦åä½ããããã®æ¹æ³ã å®ç¾©ãã¦ãã¾ãããã®ããã°ã©ã ã¯ãã°ãã° CGI ããã°ã©ã ã CGI ã¹ã¯ãªããã¨å¼ã°ãã¾ããCGI ã¯ãã¦ã§ããµã¤ãã«åç㪠ã³ã³ãã³ããç½®ãããã®æãç°¡åã§ä¸è¬çãªæ¹æ³ã§ãããã®ããã¥ã¡ã³ãã¯ã Apache ã¦ã§ããµã¼ãã§ CGI ãè¨å®ãã CGI ããã°ã©ã ãæ¸ãå§ããããã®å ¥éæ¸ã¨ãªãã§ãããã
CGI ã許å¯ããããã« Apache ãè¨å®ããCGI ããã°ã©ã ãæ£ããåä½ãããã«ã¯ãCGI ã許å¯ããããã« Apache ã®è¨å®ãè¡ãå¿ è¦ãããã¾ãã ãããè¡ãªãããã®æ¹æ³ãããã¤ãããã¾ãã
注: Apache ãå ±æã¢ã¸ã¥ã¼ã«æ©è½çãã§ãã«ãããã¦ããå ´åã ã¢ã¸ã¥ã¼ã«ããã¼ãããã¦ãããã¨ã確èªãã¦ãã ããã ã¤ã¾ã
httpd.conf
ã§
LoadModule
ãã³ã¡ã³ãã¢ã¦ãããã¦ããªããã¨ã確èªãã¦ãã ããã æ£å¸¸ã«è¨å®ããã¦ããã°æ¬¡ã®ããã«ãªãã¯ãã§ã:
LoadModule cgi_module modules/mod_cgi.so
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 ã¯ã¨ã©ã¼ã¡ãã»ã¼ã¸ãè¿ãã¾ãã
CGI ããã°ã©ã ã¯ãã»ãã¥ãªãã£ä¸ã®çç±ãã ScriptAlias
ããããã£ã¬ã¯ããªã«å¶éããããã¨ããã°ãã°ããã¾ãããã®æ¹æ³ã«ããã CGI ããã°ã©ã ã使ç¨ã§ããã¦ã¼ã¶ã管çè
ãå³ããå¶å¾¡ãããã¨ãã§ãã¾ãã ããããªãããé©åãªã»ãã¥ãªãã£äºå対çãã¨ããããªãã°ãCGI ããã°ã©ã ãä»»æã®ãã£ã¬ã¯ããªã§å®è¡ã§ããªãããã«ããçç±ã¯ããã¾ããã ä¾ãã°ãã¦ã¼ã¶ã« UserDir
ãã£ã¬ã¯ãã£ãã§å½¼ãã®ãã¼ã ãã£ã¬ã¯ããªé
ä¸ã«ã¦ã§ãã³ã³ãã³ããæããããã¨ãã¾ãã ãããå½¼ãã CGI ããã°ã©ã ãæã¤ãã¨ãæãã§ãã¦ããã¡ã¤ã³ã® cgi-bin
ãã£ã¬ã¯ããªã¸ã®ã¢ã¯ã»ã¹ãã§ããªãå ´åã CGI ããã°ã©ã ãå®è¡ãããã¨ãã§ããä»ã®å ´æãå¿
è¦ã«ãªãã¾ãã
ä»»æã®ãã£ã¬ã¯ããªã§ CGI ã®å®è¡ã許å¯ããã«ã¯äºæ®µéã®è¨å®ãå¿
è¦ã§ãã ã¾ããAddHandler
ã SetHandler
ãã£ã¬ã¯ãã£ãã«ãã£ã¦ cgi-script
ãã³ãã©ãå¯è½ã«ãªã£ã¦ããå¿
è¦ãããã¾ãã æ¬¡ã«ãOptions
ãã£ã¬ã¯ãã£ãã§ ExecCGI
ãæå®ããã¦ããªããã°ãªãã¾ããã
ãµã¼ãã®ã¡ã¤ã³ã®è¨å®ãã¡ã¤ã«ä¸ã§ Options
ãã£ã¬ã¯ãã£ããæç¤ºçã«ä½¿ç¨ãããã¨ã§ãç¹å®ã®ãã£ã¬ã¯ããªé
ä¸ã§ CGI ã®å®è¡ã許å¯ããããã«æå®ãããã¨ãã§ãã¾ã:
<Directory /usr/local/apache2/htdocs/somedir>
Options +ExecCGI
</Directory>
ä¸è¨ãã£ã¬ã¯ãã£ãã¯ãCGI ãã¡ã¤ã«ã®å®è¡ãå¯è½ã«ãããã Apache ã«ä¼ãã¾ããã¾ããã©ã®ãã¡ã¤ã«ã CGI ãã¡ã¤ã«ãã ãµã¼ãã«ä¼ããå¿
è¦ãããã¾ããæ¬¡ã® AddHandler
ãã£ã¬ã¯ãã£ãã®ä¾ã§ã¯ãcgi
ã¾ã㯠pl
ãæ¡å¼µåã«æã¤ãã¹ã¦ã®ãã¡ã¤ã«ã CGI ããã°ã©ã ã¨ãã¦ã¿ãªããã¨ããµã¼ãã«ä¼ãã¾ã:
AddHandler cgi-script .cgi .pl
.htaccess
ãã¥ã¼ããªã¢ã« 㯠httpd.conf
ã夿´ã§ããªãå ´åã«ã©ããã£ã¦ CGI ããã°ã©ã ã 使ããããã«ãããã説æãã¦ãã¾ãã
.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>
ãé常ã®ãããã°ã©ãã³ã°ã¨ 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 è¡ããã©ã¦ã¶ã¦ã£ã³ãã«ç¾ããã§ãããã ããã¯ãã¾ãã¨ããµã¤ãã£ã³ã°ãªãã¨ã§ã¯ããã¾ããã ããããããããã¾ãåãã°ã ä»ã®ã©ã®ãããªãã®ã§ãåãããã¨ãã§ããããã«ãªãã¾ãã
ã¦ã§ããã CGI ããã°ã©ã ã¸ã®ã¢ã¯ã»ã¹ãè¡ãªã£ãã¨ãã ãã©ã¦ã¶ã§è¦ãå¯è½æ§ãããåã¤ã®åºæ¬çãªãã¨ãããã¾ã:
Content-Type
ã CGI ããã°ã©ã å
ã§ ã»ãããããã確èªãã¦ãã ããã
ãµã¼ãã¯ããªãã®æ¨©éã§å®è¡ããã¦ããªãã®ãå¿ããªãããã«ã ã¤ã¾ããèµ·åããã¨ãããµã¼ãã¯ç¹æ¨©ããããªãã¦ã¼ã¶ - é常 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 ããã°ã©ã ãæ¸ã ãèªãã§ãã ããã
ã¨ã©ã¼ãã°ã¯åéã§ãã å ¨ã¦ã®ãã¾ããããªããã¨ã¯ãã¨ã©ã¼ãã°ã«ã¡ãã»ã¼ã¸ãçæãã¾ãã å¿ ããããæåã«è¦ãã¹ãã§ãã ãããããªããã¦ã§ããµã¤ãã主å¬ãã¦ããå ´æã ã¨ã©ã¼ãã°ã®åç §ã許ãã¦ããªããªãã°ããã£ã¨ä»ã®ãµã¤ãã§ä¸»å¬ããã¹ãã§ãã ã¨ã©ã¼ãã°ã®èªã¿æ¹ãå¦ã¶ãã¨ã§ãã»ã¨ãã©å ¨ã¦ã®åé¡ãè¿ éã«ç¢ºèªããã è¿ éã«è§£æ±ºãããã¨ãããã¨ãåããã§ãããã
Suexecsuexec ãµãã¼ãããã°ã©ã 㯠ãã¼ãã£ã«ãã¹ããã¦ã¼ã¶ã®ãã¼ã ãã£ã¬ã¯ããªã®å ´æã«ä¾ã£ã¦ 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 ã® ãã°ãã¡ã¤ã«ã®ä½ç½®ã調ã¹ããã®ãã°ãã¡ã¤ã«ã使ã£ã¦ããªã·ã¼éåã è¦ã¤ãã¦ãã ããã
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
ã¯é常ã³ã³ã½ã¼ã«ã¾ãã¯ã¹ã¯ãªã¼ã³ãæå³ãã¾ãã
ã¦ã§ããã©ã¼ã ãã 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 ããã°ã©ã ã®ä»ã®é¢ã§ãåæ§ã«å½¹ã«ç«ã¡ã¾ãã
CGI ã¢ã¸ã¥ã¼ã«/ã©ã¤ãã©ãªCGI ããã°ã©ã ãæ¸ãã¨ããé¢åãªä»äºã®å¤§é¨åããã¦ããã ã³ã¼ãã©ã¤ãã©ãªã¾ãã¯ã¢ã¸ã¥ã¼ã«ã使ããã¨ãæ¤è¨ãã¹ãã§ãã ããã¯ã¨ã©ã¼ãæ¸ãããæ©ãéçºã«ã¤ãªããã¾ãã
Perl ã§ CGI ããã°ã©ã ãæ¸ãã¦ãããªããã¢ã¸ã¥ã¼ã«ã¯ CPAN ã§æä¾ããã¦ãã¾ãã ãã®ç®çã®ããã®æãæ®åãã¦ããã¢ã¸ã¥ã¼ã«ã¯ CGI.pm
ã§ãã CGI::Lite
ãæ¤è¨ãã¾ããããããã¯ãã»ã¨ãã©ã®ããã°ã©ã ã«ããã¦å¿
è¦ã¨ãããã¹ã¦ã®æ©è½ã®æå°ã»ããã®å®è£
ã§ãã
C ã§ CGI ããã°ã©ã ãæ¸ãã¦ãããªãããããã㪠ãªãã·ã§ã³ãããã¾ãããããã®å
ã®ä¸ã¤ã¯ http://www.boutell.com/cgic/ ã§æä¾ããã¦ãã CGIC
ã©ã¤ãã©ãªã§ãã
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 ãã°ãã¼ã¿ãã¼ã¹ã«éãã¹ãã§ãªã ãã¨ã«æ³¨ç®ãã¦ãã ããã
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3