Äîêóìåíò âçÿò èç êýøà ïîèñêîâîé ìàøèíû. Àäðåñ
îðèãèíàëüíîãî äîêóìåíòà
: 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 Ïîèñêîâûå ñëîâà: ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï ï |
Apache HTTP Server Version 2.2
À?ÇÓÅØ È?Åò | À?ÇÓÅØ Ñ?ÍÓÎþ |
---|---|
CGI (Common Gateway Interface)ÄÒ Ð?Ì-É?ÀÅ ÊÈÕû CGI ×ÑÇÞÁçÇ? Ø?ÐÊ CGI ÍÊÕ?ÈÃÖ?Æ?Àý ÊÞÈ?ÄÒ, (Ð?ÖôÐÜÑ? ÃËÏûÐË ÈÈÅõÄÒ) ÏìÊÞ ×ÑÇÞÁçÇ?À? ÕûÍÕ×ßÄÒ ÉöÉÐË Ñ?Ð××áÄé. Ð?Ë÷ÐÜÖ?ÏÅÌ- ÅÏÐ?ÐÞ ÖôÐÜÑ?È? ÈÈÅõÄÒ ÀÅÐõ Ø÷×ßÀý À?Äì×á ÉöÉÐÜÄé. ÐÜ É?Ì-ÄÒ ÎÖÖÔÔÅ Ð?Ì-É?ÏÅ CGIÈ? ÁÈÌÊ×ßÄÒ ÉöÉÐË ÌâÀÃ×ßÀý, CGI ×ÑÇÞÁçÇ?ÐË ÐëÌÊ×èÊËÄé.
CGI ×ÑÇÞÁçÇ?ÐÜ ÏÓÉéÇÞ ÅÏÐë×ßÇÑÈù CGI Í××ðÐÜ ÀÅÄÙ×ßÅÅÇß ÎÖÖÔÔÅÈ? ÌÃÑ?×èÎï ×áÄé. ÌÃÑ?×ßÄÒ ÉöÉÐÊ Ï?Ç?ÀÅÑ?Äé.
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
ÖÔÐßÐË
Í××ð×ßÏ? ÀñÀ?È? ÉíØ?×áÄé. ÉÀÇà ÖÔÐßÐÜ ÑÈÐ÷×ßÀý Í××ðÀÅÄÙ×ßÈ÷
ÎþÆ ÉöÉÐÈÇÞÅ÷ ÓòÇÒÐË ×èÎï ×áÄé. ÁçÇÈÑ? ÎÚÐÈÈù ÎÖÖÔÔÅÄÒ
ÏÐÇ?É?ÐË ÊÈÃÍÄé.
ÊÈÕû ÊÈÎØË? ÐÜÐ?Æ?É?ÏÅ 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 ÖÔÐßÐ× Í××ðÐË ×óÏû×áÄé. ÎþÆÂ
ÖÔÐßÐÜ 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-type ×üÄ?È? ÓòÇÒ×èÎï ×áÄéÄÒ ÑÅÐÜÄé. HTTP ×üÄ?ÄÒ Õ?Æ?ÐÜÎ?Ö?ÏÅÀä Õ?Æ?ÐÜÎ?Ö?ÀÅ ÎþÆ ÃËÏûÐË ÉîÀäÅÙÑ? ÉÜÈ? ÎÛÈÀÄé. ÊÈÕû ÄéÐÍÀ? ÀÀÄé.
Content-type: text/html
ÅÞÉ?ÒÀ Ò?ÐÜÄÒ HTML Ø?ÐÊ ÊúÆ?ÏüÐ?ÀÅ ÊÈÏ?Ñé Ì? ÐæÄÒ ×?ÍÔÐÈÇÞ ÓòÇÒ×èÎï ×áÄéÄÒ ÑÅÐÜÄé. ÄûÊÞÊàÐ× ÀöÏü HTMLÐË ÓòÇÒ×ßÑ?ÈÈ, Æ?Æ?ÇÞ gif ÁçÈÂÀ? ÀÀÐÜ HTMLÐÜ ÎÖÄá ÃËÏûÐË ÓòÇÒ×ßÄÒ 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.
×á ÑéÐÜ ÊÈÐÞÄé. ØÿÊàÅ×Ñ?ÄÒ ÎÚÑ?ÈÈ, ×áÉ? ÅÏÐë×ßÄÒ ÀÝÐË
ÊÈÎâÐÈÄß ÐÜÑ? ÄéÈ? ÀÝÐË ÍÓÅÅ×è ÊÌ Ì? ÐæÄé.
Ð?ÏÅÌ- CGI ×ÑÇÞÁçÇ?ÏÅ Ñ?Áé×âÆ? ÊúÆ?ÏüÐ?ÏÅ Ã?ÏÓ Ì? ÐæÄÒ ÃËÏûÐÊ ÁòÊËÐ?ÐÈÇÞ ÃçÀÅÑ?Äé.
Content-Type
ÐË ÌÃÑ?×ßÏÄÄÒÑ? Ø?ÐÞ×áÄé.Ì-É?ÄÒ Ä÷ÍÕÀ? ÅÏÐß×á ÀøÑ?ÐÈÇÞ ÅÏÐë×ßÑ? ÎÚÐÍÐË ÈýÍÙ×ßÆ?.
Ñÿ, Ì-É?ÀÅ ÍÓÐë×ßÈù Ì-É?ÄÒ ÊåÖ?Á× Ë÷ÏûÐê Á××á(ÊÈÕû
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 Ñ?Ï? ×ÑÇÞÁçÇ?ÐË
Ë÷Ïû×ßÈù ÎþÆ ÀÅË?Ø?ÍÊÖ? Ø?ÐÊ ÎþÆ Ë÷ÏûÐê Å?ÇÊÕôÈ?ÏÅ ÐæÄÒÑ?ÏÅ
Å?Æ? CGI ×ÑÇÞÁçÇ?ÐË ÄéÈ? Ë÷ÏûÐê Á××áÐÈÇÞ Í××ð×â Ì? ÐæÄé.
SuexecÄÒ ÈÕÏü Î?Àí×ßÀä Á××áÐË ÀÛË÷×ßÈ÷, ÀÛË÷È? ×ßÃ?Æ?ÅÅ
ÕûÀ?×ßÑ? È?×ßÈù CGI ×ÑÇÞÁçÇ?ÐË Í××ð×ßÑ? ÎÚÀý Premature
end of script headers
È? ÉíØ?×áÄé.
suexecÈ? Ë÷Ïû×ßÀý ÐæÄÒÑ? ÎÛÇÑÈù apachectl -V
È?
Í××ð×ßÏ? SUEXEC_BIN
Ð?ÔÅÈ? Ø?ÐÞ×áÄé. ÎÖÖÔÔÅÀÅ
ÍÓÐë×âÆ? Áç ÐõÌâÏÅÌ- suexec Í××ðÖÔÐßÐË ÉïÀï×ßÈù, suexecÈ?
Ë÷Ïû×â Ì? ÐæÄé.
suexecÈ? ÏßÐ?Ø? ÐÜ×è×ßÑ? È?×ïÄéÈù Ë÷Ïû×èÌ-ÄÒ ÎØÅØÄé.
suexecÈ? Ë÷Ïû×ßÑ? ÎÚÐÈÇÑÈù SUEXEC_BIN
Ð?ÔÅÏÅ
ÐæÄÒ suexec
Í××ðÖÔÐßÐË Ñ?ÏüÀý (Ø?ÐÊ ÖÔÐßÈýÐË
ÉéÂéÀý) Ì-É?È? Ð÷ÍÓÐë×ßÈù ÅØÄé. suexecÏÅ Äû×è ÐàÐÊ ÄéÐÍ ÁçÇÅÅÅ
Ë÷Ïû×ßÀý ÍÝÄéÈù, suexec -V
È? Í××ð×ßÏ? suexec
ÇÞÁçÖÔÐß Ð?ÔÅÈ? ÎÛÎÖÃËÀý ÇÞÁçÖÔÐßÏÅÌ- Ä÷ÍÕÐÜ ÎþÆ ÁäÔ?ÐË
ÎþÁòÀý ÐæÄÒÑ? Ó?ÄÒÄé.
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
ÐÊ ÊÈÕû ÔìÌæÐÜÃ? Ø-ÈùÐË Æö×áÄé.
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 ×ÑÇÞÁçÇ?Ð× ÄéÈ? Ï?Ç? ÈùÐË Ëü××ÄÒ Æ?ÐÜÊúÇ?È?ÏÝ È?ÅòÅùÐÜ ÐæÄé.
CGI ×ÑÇÞÁçÇ?ÐË ÐëÌÊ×âÆ? Ñ?Ç÷×á ÐëÎ?ÐË ÄûÍÕ×èÑæÄÒ ÔêÅõ Æ?ÐÜÊúÇ?È? Ø?ÐÊ È?ÅòÐË Ë÷Ïû×âÑ? ÀýÇÑ×èÊÑÎï ×áÄé. ÐÜÇÁ ÀÝÐË Ë÷Ïû×ßÈù É?ÁçÀÅ ÑéÀý Ä? ËÅÈ? ×ÑÇÞÁçÇ?ÐË ÀÃÉï×â Ì? ÐæÄé.
PerlÇÞ CGI ×ÑÇÞÁçÇ?ÐË ÐëÌÊ×áÄéÈù CPANÏÅÌ- À?ÇÓ È?ÅòÅùÐË Ó?ÐË
Ì? ÐæÄé. CGI ÀÃÉïÏÅ ÀÅÐõ ÃÞÈ? Ë÷ÏûÅ×ÄÒ È?ÅòÐÊ
CGI.pm
ÐÜÄé. ÄûÊÞÊàÐ× ×ÑÇÞÁçÇ?ÏÅ ÓöÊà×á ÓæÌâ
ÁòÄÙÐË ÁÈ×?×á CGI::Lite
ÅÅ ÀýÇÑ×è ÊÌ Ì? ÐæÄé.
CÇÞ CGI ×ÑÇÞÁçÇ?ÐË ÐëÌÊ×áÄéÈù ÌÁÕÓÐ× Ï?Ñ?ÀÅ ÈÉÄé. ÐÜÑï
×ßÃ?ÀÅ http://www.boutell.com/cgic/ÏÅ
ÐæÄÒ CGIC
Æ?ÐÜÊúÇ?È?Äé.
Ð?ÏÅ ÈÕÏü ÈÉÐÊ 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 Ñ?É?ÐË ÎÖÖÔÔÅ É?Áç Å?ÐÜÕÝÊ?ÐÜÍÊÏÅ ÏÓÈ?Èù ÐÄûÇÞ ÎØÅØÄé.