Äîêóìåíò âçÿò èç êýøà ïîèñêîâîé ìàøèíû. Àäðåñ îðèãèíàëüíîãî äîêóìåíòà : http://www.arcetri.astro.it/manual/ko/howto/cgi.html
Äàòà èçìåíåíèÿ: Mon Jan 21 19:44:30 2013
Äàòà èíäåêñèðîâàíèÿ: Fri Feb 28 05:16:33 2014
Êîäèðîâêà: ISO8859-5

Ïîèñêîâûå ñëîâà: ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï
ÎÖÖÔÔÅ Õ?ÕôÈ?Î?: CGIÈ? Ë÷Ïû×á ÅÏÐ? ÖôÐÜÑ? ËÌÊ - Apache HTTP Server
<-
Apache > HTTP Server > Documentation > Version 2.2 > How-To / Tutorials

ÎÖÖÔÔÅ Õ?ÕôÈ?Î?: CGIÈ? Ë÷Ïû×á ÅÏÐ? ÖôÐÜÑ? ËÌÊ

ÀÅÄÙ×á Î?Îþ:  en  |  ja  |  ko 

ÐÜ É?Ì-ÄÒ ÓæÍÕÖ× É?Ï?ÐÜ ÎÖÄåÄßÄé. ÓæÁéÏÅ Ê?ÀöÅØ ÃËÏûÐÊ ÏÅÎþ É?Ì-È? Ò?Àý×ßÌÌÏô.
top

ÌâÀÃ

CGI (Common Gateway Interface)ÄÒ Ð?Ì-É?ÀÅ ÊÈÕû CGI ×ÑÇÞÁçÇ? Ø?ÐÊ CGI ÍÊÕ?ÈÃÖ?Æ?Àý ÊÞÈ?ÄÒ, (Ð?ÖôÐÜÑ? ÃËÏûÐË ÈÈÅõÄÒ) ÏìÊÞ ×ÑÇÞÁçÇ?À? ÕûÍÕ×ßÄÒ ÉöÉÐË Ñ?Ð××áÄé. Ð?Ë÷ÐÜÖ?ÏÅÌ- ÅÏÐ?ÐÞ ÖôÐÜÑ?È? ÈÈÅõÄÒ ÀÅÐõ Ø÷×ßÀý À?Äì×á ÉöÉÐÜÄé. ÐÜ É?Ì-ÄÒ ÎÖÖÔÔÅ Ð?Ì-É?ÏÅ CGIÈ? ÁÈÌÊ×ßÄÒ ÉöÉÐË ÌâÀÃ×ßÀý, CGI ×ÑÇÞÁçÇ?ÐË ÐëÌÊ×èÊËÄé.

top

CGIÈ? ×óÏû×ßÅÅÇß ÎÖÖÔÔÅ ÌÃÑ?×ßÁò

CGI ×ÑÇÞÁçÇ?ÐÜ ÏÓÉéÇÞ ÅÏÐë×ßÇÑÈù CGI Í××ðÐÜ ÀÅÄÙ×ßÅÅÇß ÎÖÖÔÔÅÈ? ÌÃÑ?×èÎï ×áÄé. ÌÃÑ?×ßÄÒ ÉöÉÐÊ Ï?Ç?ÀÅÑ?Äé.

ScriptAlias

ScriptAlias Ñ?ÍÓÎþÈ? Ë÷Ïû×ßÈù ÎÖÖÔÔÅÄÒ Ö?Ñ? Å?ÇÊÕôÈ?È? CGI ×ÑÇÞÁçÇ?ÏûÐÈÇÞ ÅàÄé. ÎÖÖÔÔÅÄÒ ÐÜ Å?ÇÊÕôÈ?ÏÅ ÐæÄÒ È?Å÷ ÖÔÐßÐÜ CGI ×ÑÇÞÁçÇ?ÐÜÆ?Àý ÀÅÑ?×ßÏ? Õ?Æ?ÐÜÎ?Ö?ÀÅ ÐêÏ?ÐË ÏôÓË×ßÈù ÐêÏ?ÐË Í××ð×ßÇÑÀý ÍÓÅÅ×áÄé.

ScriptAlias Ñ?ÍÓÎþÄÒ ÄéÐÍÀ? ÀÀÐÜ Ë÷Ïû×áÄé.

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

Ð? ÏÉÑ?ÄÒ ÎÖÖÔÔÅÈ? ÁòÊË ÐõÌâÏÅ ÌÃÔÅ×á ÀöÏü httpd.conf ÌÃÑ?ÖÔÐßÏÅ ÐæÄÒ ÃËÏûÐÜÄé. ScriptAlias Ñ?ÍÓÎþÄÒ Alias Ñ?ÍÓÎþÏÝ ÀÀÐÜ URL ÎåÊÞÊàÐË Ö?Ñ? Å?ÇÊÕôÈ?ÇÞ ÄûÐÐ×áÄé. AliasÏÝ ScriptAliasÄÒ ÊÈÕû DocumentRoot Å?ÇÊÕôÈ? ÉëÏÅ ÐæÄÒ Å?ÇÊÕôÈ?ÏÅ Ë÷Ïû×áÄé. AliasÏÝ ScriptAliasÐ× Ò?ÐÜÑÅÐÊ ScriptAliasÀÅ ÓïÀÅÇÞ URL ÎåÊÞÊàÐÈÇÞ ÍÓÐë×ßÄÒ È?Å÷ ÖÔÐßÐË CGI ×ÑÇÞÁçÇ?ÐÈÇÞ ÓûÁî×ßÄÒ ÑÅÐÜÄé. ÁçÇÅÌ- Ð?Ð× ÌÃÑ?ÐÊ ÎÖÖÔÔÅÏÅÀä /cgi-bin/ÐÈÇÞ ÍÓÐë×ßÄÒ ÐêÏ?ÐË ÏôÓË×ßÈù /usr/local/apache2/cgi-bin/ Å?ÇÊÕôÈ?ÏÅÌ- Ó?ÎÖÌ- CGI ×ÑÇÞÁçÇ?ÐÈÇÞ ÓÃÈ?×ßÆ?Àý ÎÛÈÀÄé.

ÏÉÈ? ÅùÎþ, URL http://www.example.com/cgi-bin/test.plÐË ÏôÓË×ßÈù ÎÖÖÔÔÅÄÒ /usr/local/apache2/cgi-bin/test.pl ÖÔÐßÐË Í××ð×ßÏ? ÀñÀ?È? ÉíØ?×áÄé. ÉÀÇà ÖÔÐßÐÜ ÑÈÐ÷×ßÀý Í××ðÀÅÄÙ×ßÈ÷ ÎþÆ ÉöÉÐÈÇÞÅ÷ ÓòÇÒÐË ×èÎï ×áÄé. ÁçÇÈÑ? ÎÚÐÈÈù ÎÖÖÔÔÅÄÒ ÏÐÇ?É?ÐË ÊÈÃÍÄé.

ScriptAlias Å?ÇÊÕôÈ? ÉëÏÅ ÐæÄÒ CGI

ÊÈÕû ÊÈÎØË? ÐÜÐ?Æ?É?ÏÅ CGI ×ÑÇÞÁçÇ?ÐÊ ScriptAlias×á Å?ÇÊÕôÈ?ÏÅ ×áÑ?×áÄé. ÁçÇÅÌ- À?È?ÐêÄÒ Ä?ÀÅ CGI ×ÑÇÞÁçÇ?ÐË Ë÷Ïû×â Ì? ÐæÄÒÑ? Î?ÀíØ? À?ÅÆ×â Ì? ÐæÄé. ÁçÇ?Ã? Ð?Ä÷×á ÊÈÎØÑÆÔÅÈ? Óû×ïÄéÈù ÎÖÉ? Å?ÇÊÕôÈ?ÏÅÌ-Ã? CGI ×ÑÇÞÁçÇ?ÐË Í××ð×ßÑ? ÎÚÐË ÐÜÐ?ÀÅ Î?Äé. ÏÉÈ? ÅùÎþ, UserDir Ñ?ÍÓÎþÈ? Ë÷Ïû×ßÏ? Ë÷ÏûÐêÀÅ ÐêÍÕÐ× Ø?Å?ÇÊÕôÈ?ÏÅ Ð?ÖôÐÜÑ?È? ÀÅÑ?ÄÒ ÀöÏüÈ? ÀÅÑ?×ßÐê. Ë÷ÏûÐêÀÅ ÐêÍÕÐ× CGI ×ÑÇÞÁçÇ?ÐË Ë÷Ïû×ßÀý ÍÝÐÊÅ? cgi-bin Å?ÇÊÕôÈ?ÏÅ Ñ?ÁéÁ××áÐÜ Î?ÄéÈù, ÄéÈ? À?ÏÅÌ-Æ?ÅÅ CGI ×ÑÇÞÁçÇ?ÐË Í××ð×ßÀý ÍÝÐË ÀÝÐÜÄé.

ÎÖÉ? Å?ÇÊÕôÈ?ÏÅÌ-Ã? CGI Í××ðÐË ×óÏû×ßÇÑÈù ÅÞ À?Ñ?ÐÜ ×ÚÏô×ßÄé. ÈåÐ?, AddHandlerÃ? SetHandler Ñ?ÍÓÎþÈ? Ë÷Ïû×ßÏ? cgi-script ×êÅùÇ?È? ÐëÅÏ×èÎï ×áÄé. ÅÞÉ?ÒÀÇÞ, Options Ñ?ÍÓÎþÏÅ ExecCGIÈ? Ñ?Ñ?×èÎï ×áÄé.

OptionsÈ? Ë÷Ïû×ßÏ? ÈýÍÓÐ?ÐÈÇÞ CGI Í××ðÐË ×óÏû×ßÁò

Ì-É?Ð× ÑæÌÃÑ?ÖÔÐßÏÅ Ñ?Ñ? Options Ñ?ÍÓÎþÈ? Ë÷Ïû×ßÏ? Ö?Ñ? Å?ÇÊÕôÈ?ÏÅÌ- CGI Í××ðÐË ×óÏû×â Ì? ÐæÄé.

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

Ð? Ñ?ÍÓÎþÇÞ ÎÖÖÔÔÅÄÒ CGI ÖÔÐßÐ× Í××ðÐË ×óÏû×áÄé. ÎþÆ ÖÔÐßÐÜ CGI ÖÔÐßÐÞÑ?ÅÅ Ì-É?ÏÅÀä ÎÛÇÑÎï ×áÄé. ÄéÐÍ AddHandler Ñ?ÍÓÎþÄÒ Ì-É?ÏÅÀä Ø?ÐõÐêÀÅ cgiÃ? plÐÞ ÖÔÐßÐÊ È?ÅÞ CGI ×ÑÇÞÁçÇ?ÐÜÆ?Àý ÎÛÈÀÄé.

AddHandler cgi-script .cgi .pl

.htaccess ÖÔÐß

.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>

top

CGI ×ÑÇÞÁçÇ? ÐëÌÊ×ßÁò

``ÐßÉíÐ?ÐÞ'' ×ÑÇÞÁçÇÅÉæÀ? CGI ×ÑÇÞÁçÇÅÉæ Ë÷ÐÜÏÅÄÒ ÅÞÀÅÑ? ÑæÅØ Ò?ÐÜÑÅÐÜ ÐæÄé.

ÓÉÉ?ÒÀ Ò?ÐÜÄÒ CGI ×ÑÇÞÁçÇ?ÐÊ ÄéÈ? ÓòÇÒÐË ×ßÁòÐ?ÏÅ ÈåÐ? MIME-type ×üÄ?È? ÓòÇÒ×èÎï ×áÄéÄÒ ÑÅÐÜÄé. HTTP ×üÄ?ÄÒ Õ?Æ?ÐÜÎ?Ö?ÏÅÀä Õ?Æ?ÐÜÎ?Ö?ÀÅ ÎþÆ ÃËÏûÐË ÉîÀäÅÙÑ? ÉÜÈ? ÎÛÈÀÄé. ÊÈÕû ÄéÐÍÀ? ÀÀÄé.

Content-type: text/html

ÅÞÉ?ÒÀ Ò?ÐÜÄÒ HTML Ø?ÐÊ ÊúÆ?ÏüÐ?ÀÅ ÊÈÏ?Ñé Ì? ÐæÄÒ ×?ÍÔÐÈÇÞ ÓòÇÒ×èÎï ×áÄéÄÒ ÑÅÐÜÄé. ÄûÊÞÊàÐ× ÀöÏü HTMLÐË ÓòÇÒ×ßÑ?ÈÈ, Æ?Æ?ÇÞ gif ÁçÈÂÀ? ÀÀÐÜ HTMLÐÜ ÎÖÄá ÃËÏûÐË ÓòÇÒ×ßÄÒ CGI ×ÑÇÞÁçÇ?ÐË ÐëÌÊ×ßÄÒ ÀöÏüÅÅ ÐæÄé.

ÅÞÀÅÑ?È? Ñ?Ïì×ßÀýÄÒ CGI ×ÑÇÞÁçÇ? ÐëÌÊÐÊ ÐÜÉÜ ÈÈÅùÎþ ÊÈÎâÐË ÄéÈ? ×ÑÇÞÁçÇ?ÅùÀ? ÈÕÏü ÊåÍÑ×ßÄé.

ÓÃÐÍÐÈÇÞ ÈÈÅ÷ CGI ×ÑÇÞÁçÇ?

ÄéÐÍÐÊ ÊúÆ?ÏüÐ?ÏÅ ×á ÑéÐË ÒÿÄÒ CGI ×ÑÇÞÁçÇ? ÏÉÑ?Äé. ÁçÄûÇÞ first.plÐÜÆ?ÄÒ ÖÔÐßÏÅ Ð?Ðõ×ßÀý, cgi-bin Å?ÇÊÕôÈ?ÏÅ ÊÉË÷×áÄé.

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

PerlÏÅ ÐÝÌ?×ßÑ? ÎÚÄ?Æ?ÅÅ É?ÍÌ ÐßÐÜ ÐßÎþÃ?ÄÒÑ? ÎÛ Ì? ÐæÄé. ÓÉÉ?ÒÀ ÑéÐÊ ÎÖÖÔÔÅ(Ø?ÐÊ Ë÷Ïû×ßÄÒ Í?)ÏÅÀä /usr/bin/perl Ð?ÔÅÏÅ ÐæÄÒ ÐÞÕÝ×ÑÈ?ÕÝÐË Ë÷Ïû×ßÏ? ÐÜ ×ÑÇÞÁçÇ? ÖÔÐßÐË Í××ð×ßÆ?Àý ÎÛÈÀÄé. ÅÞÉ?ÒÀ ÑéÐÊ ÉöÁí ÈË×á content-type ÌÁÎ?ÐË ÓòÇÒ×ßÀý carriage-return ÑéÉéÂîÐË ÅÞÉ? ÓòÇÒ×áÄé. ÁçÇ?Èù ×üÄ? ÅêÏÅ HTTP ×üÄ?Ð× ÃÅÐË Æö×ßÄÒ Ê?ÑéÐÜ ËÁòÀý, ÊËÉ?ÐÜ ÍÓÐë×áÄé. ÌÌÉ?ÒÀ ÑéÐÊ "Hello, World." É?ÐêÏ-ÐË ÓòÇÒ×áÄé. ÐÜÀÝÐÈÇÞ ÃÅÐÜÄé.

ÊúÆ?ÏüÐ?È? Í××ð×ßÀý ÑæÌâÈ? ÐäÇÒ×áÄé

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

ÖÔÐß ÐõÌâÈ? ÐäÇÒ×ßÈù, ÊúÆ?ÏüÐ?Ó?ÏÅ Hello, World. ×á ÑéÐÜ ÊÈÐÞÄé. ØÿÊàÅ×Ñ?ÄÒ ÎÚÑ?ÈÈ, ×áÉ? ÅÏÐë×ßÄÒ ÀÝÐË ÊÈÎâÐÈÄß ÐÜÑ? ÄéÈ? ÀÝÐË ÍÓÅÅ×è ÊÌ Ì? ÐæÄé.

top

ÁçÇ?Ã? ÎÖÑ? ÅÏÐë×ßÑ? ÎÚÎÖÏô!

Ð?ÏÅÌ- CGI ×ÑÇÞÁçÇ?ÏÅ Ñ?Áé×âÆ? ÊúÆ?ÏüÐ?ÏÅ Ã?ÏÓ Ì? ÐæÄÒ ÃËÏûÐÊ ÁòÊËÐ?ÐÈÇÞ ÃçÀÅÑ?Äé.

CGI ×ÑÇÞÁçÇ?Ð× ÓòÇÒ
ÑÑÄé! È?Å÷ ÀÝÐÜ Ðï ÅÏÐë×áÄéÄÒ ÆöÐÜÄé. ÓòÇÒÐÊ Ñ?Ø?×ßÑ?ÈÈ ÊúÆ?ÏüÐ?ÀÅ ÏÓÉéÇÞ ÓÃÈ?×ßÑ? È?×áÄéÈù, CGI ×ÑÇÞÁçÇ?ÏÅÌ- ÏÓÉéÈ? Content-TypeÐË ÌÃÑ?×ßÏÄÄÒÑ? Ø?ÐÞ×áÄé.
CGI ×ÑÇÞÁçÇ? ÌâÍÊÔêÅõ Ø?ÐÊ "POST Method Not Allowed" É?ÁÈ
CGI ×ÑÇÞÁçÇ?ÐË Í××ð×ßÅÅÇß ÎÖÖÔÔÅÈ? Ð?ÐØ? ÌÃÑ?×ßÑ? ÎÚÎâÄéÄÒ ÆöÐÜÄé. ÎÖÖÔÔÅ ÌÃÑ?×ßÁò ÐÐË ÄéÍÓ ÐàÀý Ë?ÈäÐÊ ÊÞÊàÐÜ ÐæÄÒÑ? Ó?ÎÖÊÑÆ?.
"Forbidden"ÐÈÇÞ ÍÓÐë×ßÄÒ É?ÁÈ
Á××á É?Ñ?ÀÅ ÐæÄéÄÒ ÆöÐÜÄé. ÎÖÖÔÔÅ ÏÐÇ? ÇÞÁçÏÝ ÎÖÇÅ ÖÔÐßÁ××á ÐÐË Ø?ÐÞ×ßÆ?.
"Internal Server Error"Æ?ÄÒ É?ÁÈ
ÎÖÖÔÔÅ ÏÐÇ? ÇÞÁçÈ? ÊÈÈù ÎÖÈÆÅÅ CGI ×ÑÇÞÁçÇ?ÐÜ ÓòÇÒ×á ÏÐÇ?É?À? ×ä "Premature end of script headers"ÀÅ ÊÈÐß ÀÝÐÜÄé. ÐÜ ÀöÏü ÎÖÇÅ ÃËÏûÅùÐË ×ßÃ?ÎÏ Ø?ÐÞ×ßÏ? ÎþÆ ÐÜÐ?ÇÞ CGI ×ÑÇÞÁçÇ?ÐÜ Ð?Ð×á HTTP ×üÄ?È? ÓòÇÒ×ßÑ? È?×ïÄÒÑ? ÎÛÎÖÊËÄé.

ÖÔÐßÁ××á

Ì-É?ÄÒ Ä÷ÍÕÀ? ÅÏÐß×á ÀøÑ?ÐÈÇÞ ÅÏÐë×ßÑ? ÎÚÐÍÐË ÈýÍÙ×ßÆ?. Ñÿ, Ì-É?ÀÅ ÍÓÐë×ßÈù Ì-É?ÄÒ ÊåÖ?Á× Ë÷ÏûÐê Á××á(ÊÈÕû nobodyÃ? www)ÐÈÇÞ ÅÏÐë×áÄé. ÁçÇÅÌ- Ä÷ÍÕÐÜ ÌâÐ?×á ÖÔÐßÐË Í××ð×ßÇÑÈù Á××áÐÜ ×ÚÏô×ßÄé. ÖÔÐßÏÅ nobodyÀÅ Í××ð×ßÁòÏÅ ÓöÊà×á Á××áÐË ÑæÁòÐ?×è ÊÈÕû È?ÅÞÏÅÀä ÖÔÐßÐ× Í××ð Á××áÐË ÑèÄé.

chmod a+x first.pl

Æ×, ×ÑÇÞÁçÇ?ÐÜ ÄéÈ? ÖÔÐßÐË ÐàÀÕÃ? ÎÄÄéÈù ÐÜ ÖÔÐßÏÅÅÅ Ð?Ð×á Á××áÐÜ ×ÚÏô×ßÄé.

ÀöÇÞ Ñ?ÊÈÏÝ Ø?Àö

ÈýÇÙ×ðÏÅÌ- ×ÑÇÞÁçÇ?ÐË Í××ð×ßÈù ÐêÅÏÐÈÇÞ ÎþÆ Ñ?ÊÈÀÅ Í?ÇÞ Ð?ÄîÅØÄé. ÏÉÈ? ÅùÎþ, PATHÄÒ Í?ÏÅÀä Ä÷ÍÕÐÜ ÈË×á ÖÔÐßÐË Ó?ÐË ÐõÌâÈ? ÎÛÇÑÑèÄé.

Ð?Ì-É?ÀÅ ×ÑÇÞÁçÇ?ÐË CGI ×ÑÇÞÁçÇ?ÐÈÇÞ Í××ð×âÆ?ÄÒ PATHÀÅ ÄéÈ? Ì? ÐæÄé. (ÏÉÈ? ÅùÎþ, sendmail ÀÀÐÜ) CGI ×ÑÇÞÁçÇ? ÎØÏÅÌ- Í××ð×ßÄÒ ÈýÇÙÎþÄÒ ÏßÐ?×á ÀöÇÞÇÞ ÈýÍÓ×èÎï Í?ÐÜ ÈýÇÙÎþÈ? Ó?ÐË Ì? ÐæÄé.

ÀöÇÞ É?Ñ?ÄÒ ÄéÐÍÀ? ÀÀÐÜ CGI ×ÑÇÞÁçÇ? ÓÉÉ?ÒÀ ÑéÏÅ Ã?ÏÐÄÒ ÍÊÕ?ÈÃÖ? ÐÞÕÝ×ÑÈ?ÕÝ (ÊÈÕû perl) ÀöÇÞÏÅÌ- ÐêÑæ ÉïË×áÄé.

#!/usr/bin/perl

Í×Ñ?ÇÞ ÐÞÕÝ×ÑÈ?ÕÝÐ× ÀöÇÞÐÞÑ? Ø?ÐÞ×áÄé.

Æ×, CGI ×ÑÇÞÁçÇ?ÐÜ ÄéÈ? Ø?ÀöÊ?Ì?È? Ë÷Ïû×áÄéÈù ÎÖÖÔÔÅÀÅ ÐÜ Ê?Ì?ÅùÐË ×ÑÇÞÁçÇ?ÏÅÀä Ð?Äî×èÎï ×áÄé.

×ÑÇÞÁçÇ? ÏÐÇ?

CGI ×ÑÇÞÁçÇ?ÐÜ Í×Öà×ßÄÒ ÀöÏü ÄûÊÞÊà ×ÑÇÞÁçÇ? ÐêÓÌ É?Ñ?Æ?É?ÐÜÄé. Ö?Ø? Ð?Ð× ÅÞÀÅÑ? Í×Ì?È? ×ßÑ? ÎÚÎâÀý ÐÜ ÁëÐË ÀøÌã ÊÈÀý ÐæÄéÈù Ä?Ä?Ïý ÁçÇÈÄé. ÈåÐ? Ð?Ì-É?ÏÅÌ- Í××ð×ßÁò Ð?ÏÅ ÈýÇÙ×ðÏÅÌ- ×ÑÇÞÁçÇ?ÐË Í××ð×èÊËÄé. ÏÉÈ? ÅùÎþ, ÄéÐÍÀ? ÀÀÐÜ Í××ð×áÄé.

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

(perl ÐÞÕÝ×ÑÈ?ÕÝÈ? Í××ð×ßÑ? ÈÆÆ?. Í?À? ÎÖÖÔÔÅÄÒ ÍÊÕ?ÈÃÖ? ÓÉÉ?ÒÀ ÑéÏÅ ÐæÄÒ ÀöÇÞ Ñ?ÊÈÈ? Ë÷Ïû×ßÏ? ÐÞÕÝ×ÑÈ?ÕÝÈ? Ó?ÎÖÎï ×áÄé.)

×ÑÇÞÁçÇ?ÐÊ Ñ?Ðß ÈåÐ? Content-TypeÐË Ö?×ä×á HTTP ×üÄ?ÅùÐË ÓòÇÒ×ßÀý Ê? ÑéÐË ÓòÇÒ×èÎï ×áÄé. ÄéÈ? ÀÝÐË ÓòÇÒ×áÄéÈù Ð?Ì-É?ÏÅÌ- Í××ð×â ÀöÏü ÎÖÖÔÔÅÄÒ Premature end of script headersÈ? ÉíØ?×áÄé. ÐêÌÌ×á ÃËÏûÐÊ Ð?Ð× CGI ×ÑÇÞÁçÇ? ÐëÌÊ×ßÁòÈ? Ò?Àý×ßÆ?.

ÏÐÇ? ÇÞÁç

ÏÐÇ? ÇÞÁçÄÒ Ä÷ÍÕ ÖýÐÜÄé. É?Î?ÀÅ ÐïÈ?Å×Èù ÏÐÇ? ÇÞÁçÏÅ É?ÁÈÀÅ ËÁôÄé. ÏÐÇ? ÇÞÁçÈ? Ñ?Ðß ÈåÐ? ËüÖüÊÑÎï ×áÄé. Ð?Ë÷ÐÜÖ?È? Ø?ÍÊÖÓ×ßÄÒ À?ÏÅÌ- ÏÐÇ? ÇÞÁçÈ? ÊÈÑ? È?×ßÀä ×áÄéÈù, ÎÖÈÆÅÅ ÄéÈ? Î?ÓÌÈ? ÎÛÎÖÊÑÎï ×áÄé. ÏÐÇ? ÇÞÁçÈ? ÊÈÄÒ ÉöÉÐË ÐÝØ?Èù, ÄûÊÞÊàÐ× É?Ñ?È? ËÅÈ? ÖÔÎ××ßÏ? ×èÀñ×â Ì? ÐæÄé.

Suexec

suexec Ñ?Ï? ×ÑÇÞÁçÇ?ÐË Ë÷Ïû×ßÈù ÎþÆ ÀÅË?Ø?ÍÊÖ? Ø?ÐÊ ÎþÆ Ë÷ÏûÐê Å?ÇÊÕôÈ?ÏÅ ÐæÄÒÑ?ÏÅ Å?Æ? CGI ×ÑÇÞÁçÇ?ÐË ÄéÈ? Ë÷ÏûÐê Á××áÐÈÇÞ Í××ð×â Ì? ÐæÄé. SuexecÄÒ ÈÕÏü Î?Àí×ßÀä Á××áÐË ÀÛË÷×ßÈ÷, ÀÛË÷È? ×ßÃ?Æ?ÅÅ ÕûÀ?×ßÑ? È?×ßÈù CGI ×ÑÇÞÁçÇ?ÐË Í××ð×ßÑ? ÎÚÀý Premature end of script headersÈ? ÉíØ?×áÄé.

suexecÈ? Ë÷Ïû×ßÀý ÐæÄÒÑ? ÎÛÇÑÈù apachectl -VÈ? Í××ð×ßÏ? SUEXEC_BIN Ð?ÔÅÈ? Ø?ÐÞ×áÄé. ÎÖÖÔÔÅÀÅ ÍÓÐë×âÆ? Áç ÐõÌâÏÅÌ- suexec Í××ðÖÔÐßÐË ÉïÀï×ßÈù, suexecÈ? Ë÷Ïû×â Ì? ÐæÄé.

suexecÈ? ÏßÐ?Ø? ÐÜ×è×ßÑ? È?×ïÄéÈù Ë÷Ïû×èÌ-ÄÒ ÎØÅØÄé. suexecÈ? Ë÷Ïû×ßÑ? ÎÚÐÈÇÑÈù SUEXEC_BIN Ð?ÔÅÏÅ ÐæÄÒ suexec Í××ðÖÔÐßÐË Ñ?ÏüÀý (Ø?ÐÊ ÖÔÐßÈýÐË ÉéÂéÀý) Ì-É?È? Ð÷ÍÓÐë×ßÈù ÅØÄé. suexecÏÅ Äû×è ÐàÐÊ ÄéÐÍ ÁçÇÅÅÅ Ë÷Ïû×ßÀý ÍÝÄéÈù, suexec -VÈ? Í××ð×ßÏ? suexec ÇÞÁçÖÔÐß Ð?ÔÅÈ? ÎÛÎÖÃËÀý ÇÞÁçÖÔÐßÏÅÌ- Ä÷ÍÕÐÜ ÎþÆ ÁäÔ?ÐË ÎþÁòÀý ÐæÄÒÑ? Ó?ÄÒÄé.

top

ÅêÏÅÌ-ÄÒ É?ÍÌ ÐßÐÜ É?ÎþÑ?ÄÒÀÅ?

CGI ×ÑÇÞÁçÇÅÉæÏÅ ÐÝÌ?×èÑ?Ì?Çß ÅêÏÅÌ- É?ÎþÑ?ÄÒ ÐßÐË ÐÜ×è×ßÈù ÅÅÏ?ÐÜ ÅØÄé. ÁÈÓÌÐ?ÐÈÇÞ ÊúÆ?ÏüÐ?ÏÝ Ì-É?ÀÅ Ì-ÇÞ ÕûÍÕ×ßÄÒ ÉöÉÐË ÈË×ßÄÒ ÀÝÐÜÄé. È?Æ?ÅÅ "Hello, World."È? ÓòÇÒ×ßÄÒ ×ÑÇÞÁçÇ?ÐË ÐëÌÊ×â Ì? ÐæÑ?ÈÈ ÐÜÇÁ ×ÑÇÞÁçÇ?ÐÊ ÊÀÇÞ ÎÅÈ?ÀÅ Î?ÁòÆ?É?ÐÜÄé.

Ø?ÀöÊ?Ì?

Ø?ÀöÊ?Ì?ÄÒ Ä÷ÍÕÐÜ ÔÔ×ËÕÝÈ? Ë÷Ïû×ßÄÒ ÅÏÎØ Ä÷ÍÕ ÑæÐ?È? ÆÀÄéÄßÄÒ À?ÐÜÄé. Ø?ÀöÊ?Ì?ÄÒ path (ÔÔ×ËÕÝÀÅ Ä÷ÍÕÐÜ ÐäÇÒ×á ÈýÇÙÎþÏÅ ×èÄ÷×ßÄÒ Í×Ñ? ÖÔÐßÐË Ó?ÄÒ ÐõÌâ), Ë÷ÏûÐêÈý, ÕÝÉÜÃÞ ÑÎÇ?ÏÝ ÀÀÐÜ Ð?Ïû×á Ñ?ÊÈÄé. ÐßÉíÐ?ÐÞ Ø?ÀöÊ?Ì?È? È?ÅÞ ÊÈÇÑÈù ÈýÇÙ×ð ×ÑÇâ×ÑÖ?ÏÅÌ- envÈ? ÐäÇÒ×áÄé.

CGIÈ? Í××ð×âÆ?ÅÅ Ì-É?ÏÝ ÊúÆ?ÏüÐ?ÄÒ À?ÐêÐ× Ø?ÀöÊ?Ì?È? Ì-ÇÞ ÁÃØ?×áÄé. ÐÜ Ñ?ÊÈÏÅÄÒ ÊúÆ?ÏüÐ? ÑÎÇ? (Netscape, IE, Lynx), Ì-É? ÑÎÇ? (ÎÖÖÔÔÅ, IIS, WebSite), Í××ð×ßÄÒ CGI ×ÑÇÞÁçÇ?Èý ÅþÐÜ ÐæÄé.

CGI ×ÑÇÞÁçÇÅÈãÄÒ ÐÜÇÁ Ê?Ì?ÅùÐË Ë÷Ïû×â Ì? ÐæÀý, Ø?ÀöÊ?Ì?ÄÒ Õ?Æ?ÐÜÎ?Ö?-Ì-É? ÕûÍÕÏÅÄÒ ÐßÊÞÊàÐË Ò?Ñ?×áÄé. Ð?ÓÌ ×ÚÌ? Ê?Ì? ÈåÇßÐÊ http://hoohoo.ncsa.uiuc.edu/cgi/env.htmlÏÅ ÐæÄé.

ÎÖÇÅ À?Äì×á Perl CGI ×ÑÇÞÁçÇ?ÐÊ ÐêÍÕÏÅÀä Ð?ÄîÅØ È?Å÷ Ø?ÀöÊ?Ì?È? ÊÈÏ?ÑèÄé. ÎÖÖÔÔÅ ÉøÖ?ÊËÐ× cgi-bin Å?ÇÊÕôÈ?ÏÅ ÐÜÏÝ ÊåÍÑ×á ×ÑÇÞÁçÇ?ÐÜ ÅÞÀà ÐæÄé. ÈþÈþ Ê?Ì?ÄÒ ×ÚÌ?ÐÜÀý Ã?ÈãÑ?ÄÒ ÌÁÕÓÐ?ÐÜÄé. ÁçÇÅÌ- À?ÍÔ ÈåÇßÏÅ Î?ÄÒ Ê?Ì?ÅÅ ÊÈÐÞÄé. Æ×, ÎÖÖÔÔÅÄÒ ÁòÊËÐ?ÐÈÇÞ Ñ?À?×ßÄÒ Ø?ÀöÊ?Ì? ÏìÏÅ Ï?Ç?ÀÅÑ? ÉöÉÐÈÇÞ Ñ?Ñ? Ø?ÀöÊ?Ì?È? ÓïÀÅ×â Ì? ÐæÄé.

#!/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 ×ÑÇÞÁçÇ?ÏÅÀä Ð? Î÷ÍÔ(form)ÐË POST×ßÈù Î÷ÍÔÏÅ ÐäÇÒ×á ÐêÇñÈ? Ö?ÊÀ×á ×?ÍÔÐÈÇÞ É-ÎþÌ- CGI ×ÑÇÞÁçÇ?Ð× STDINÐÈÇÞ Ð?Äî×áÄé. ÁçÇ?Èù ×ÑÇÞÁçÇ?ÐÊ ÕÀÊÈÅõÃ? ÖÔÐßÏÅÌ- Î?ÐÊ ÐêÇñÈ? ÓÃÈ?×ßÅýÐÜ ÐêÇñÈ? ÓÃÈ?×â Ì? ÐæÄé.

"Ö?ÊÀ×á ×?ÍÔ"ÐÊ ÈÕÏü À?Äì×ßÄé. ×çÈå ÐÜÈ?À? À?ÐË ÅþØ?(=)ÇÞ Ï?Àñ×ßÀý, ×çÈå ÐÜÈ?À? À?Ð× ÍæÅùÐË Ì-ÇÞ ÎèÖëË?Åõ(&)ÇÞ Ï?Àñ×áÄé. À?Éù, ÎêÖëË?Åõ, ÅþØ? ÀÀÐÊ ÊÞÐêÏ?ÍÊÇ?Ïþ É?ÐêÄÒ Ø?ÅÏ×ßÑ? ÎÚÅÅÇß 16Ñ?Ì?ÇÞ Ê?Ø?×áÄé. ÏßÐ?×á ÐêÇñ É?ÐêÏ-ÐÊ ÄéÐÍÀ? ÀÀÐÜ ËÀõÄé.

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

ÑÎÑÎ URL ÅêÏÅÌ- ÐÜÇÁ É?ÐêÏ-ÐË ÊÈÀä ÅØÄé. ÐÜ ÀöÏü Ì-É?ÄÒ É?ÐêÏ-ÐË QUERY_STRINGÐÜÆ?ÄÒ Ø?ÀöÊ?Ì?ÏÅ Ð?Ðõ×áÄé. ÐÜÈ? GET ÏôÓËÐÜÆ?Àý ×áÄé. FORM ÕÒÁçÐ× METHOD ÌãÌÊÐË Ñ?Ñ?×ßÏ? HTML Î÷ÍÔ(form)ÐÜ ÐêÇñÈ? GET×âÑ? POST×âÑ? ÀñÑ?×áÄé.

ÐÜÑ? ×ÑÇÞÁçÇ?ÐÊ ÐÜÇÁ É?ÐêÏ-ÐË Ð?Ïû×á Ñ?ÊÈÇÞ ÒÙÀÃÎï ×áÄé. Äé×ðØ?ÅÅ ÐÜÇÁ ÐêÇñ ÓÃÈ?È? ÅÍÀý CGI ×ÑÇÞÁçÇ?Ð× ÄéÈ? Ï?Ç? ÈùÐË Ëü××ÄÒ Æ?ÐÜÊúÇ?È?ÏÝ È?ÅòÅùÐÜ ÐæÄé.

top

CGI È?Åò/Æ?ÐÜÊúÇ?È?

CGI ×ÑÇÞÁçÇ?ÐË ÐëÌÊ×âÆ? Ñ?Ç÷×á ÐëÎ?ÐË ÄûÍÕ×èÑæÄÒ ÔêÅõ Æ?ÐÜÊúÇ?È? Ø?ÐÊ È?ÅòÐË Ë÷Ïû×âÑ? ÀýÇÑ×èÊÑÎï ×áÄé. ÐÜÇÁ ÀÝÐË Ë÷Ïû×ßÈù É?ÁçÀÅ ÑéÀý Ä? ËÅÈ? ×ÑÇÞÁçÇ?ÐË ÀÃÉï×â Ì? ÐæÄé.

PerlÇÞ CGI ×ÑÇÞÁçÇ?ÐË ÐëÌÊ×áÄéÈù CPANÏÅÌ- À?ÇÓ È?ÅòÅùÐË Ó?ÐË Ì? ÐæÄé. CGI ÀÃÉïÏÅ ÀÅÐõ ÃÞÈ? Ë÷ÏûÅ×ÄÒ È?ÅòÐÊ CGI.pmÐÜÄé. ÄûÊÞÊàÐ× ×ÑÇÞÁçÇ?ÏÅ ÓöÊà×á ÓæÌâ ÁòÄÙÐË ÁÈ×?×á CGI::LiteÅÅ ÀýÇÑ×è ÊÌ Ì? ÐæÄé.

CÇÞ CGI ×ÑÇÞÁçÇ?ÐË ÐëÌÊ×áÄéÈù ÌÁÕÓÐ× Ï?Ñ?ÀÅ ÈÉÄé. ÐÜÑï ×ßÃ?ÀÅ http://www.boutell.com/cgic/ÏÅ ÐæÄÒ CGIC Æ?ÐÜÊúÇ?È?Äé.

top

Ä? ÈÉÐÊ Ñ?ÊÈ...

Ð?ÏÅ ÈÕÏü ÈÉÐÊ CGI Ñ?ÊÈÀÅ ÐæÄé. ÄÊÍÊÁçÇü comp.infosystems.www.authoring.cgiÏÅÌ- Ï?Ç? Ë÷Æ?ÅùÀ? CGI É?Ñ?È? ÃýÐ××â Ì? ÐæÄé. HTML Writers GuildÐ× -servers ÈîÐßÈÅÈ?ÍÊÖ?ÄÒ Ñ?É?ÏÅ Äû×á ÄôÐË Ó?ÁòÏÅ Ø×È?×á ÐõÌâÄé. http://www.hwg.org/lists/hwg-servers/ÏÅÌ- Ä? ÈÉÐÊ ÀÝÐË ÎÛ Ì? ÐæÄé.

ÁçÈ?Àý ÉÀÇà CGI ×ÑÇÞÁçÇ? ÅÏÐëÏÅ Äû×á È?Å÷ ÃËÏûÐË ÌÃÈý×á CGI ÁäÎðÐË ÐàÎþÎï ×âÑ?ÅÅ È?È?Äé. NCSAÏÅ Ï?ÊË É?Ì-ÀÅ ÐæÀý, Ì?Ñ?×á ÓÚÎØÐÊ Common Gateway Interface RFC ×ÑÇÞÑ?Ö?ÏÅ ÐæÄé.

ÈîÐßÈÅÈ?ÍÊÖ?Ã? ÄÊÍÊÁçÇüÏÅ ×?Ð÷ ÀíÀý ÐæÄÒ CGI É?Ñ?ÏÅ Äû×è Ñ?É?×âÆ?ÄÒ ÉïË×á ×?Ë?À? Ï?ÇÅ ÁòÄû×á ÀñÀ?, Í×Ñ?ÇÞ ÉïË×á ×?Ë?ÐÜ ÎþÆËÀä ÄéÈ?Ñ?, Ë÷Ïû×ßÄÒ Ì-É?, CGI ×ÑÇÞÁçÇ?ÐË ÐëÌÊ×á Î?Îþ, ÀÅÄÙ×ßÈù ×èÄ÷ ÔêÅõÈ? ÐêÌÌØ? Ð?ÎþÆ?. ÁçÇ?Èù ×èÀñÓ?ÐË Ó?Áò Í?Ï?Ñ?Äé.

ÎÖÖÔÔÅ ÌâÍÊÔêÅõÀÅ ÐïÈ?Å×Î?ÄéÀý Ø?ÍÕ×ßÑ? ÎÚÄÒ ×á CGI Ñ?É?ÐË ÎÖÖÔÔÅ É?Áç Å?ÐÜÕÝÊ?ÐÜÍÊÏÅ ÏÓÈ?Èù ÐÄûÇÞ ÎØÅØÄé.

ÀÅÄÙ×á Î?Îþ:  en  |  ja  |  ko 

top

Comments

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 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 mailing lists.