home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2004 November
/
CMCD1104.ISO
/
Software
/
Complet
/
Apache
/
apache_2.0.52-win32-x86-no_ssl.msi
/
Data.Cab
/
F277854_cgi.xml.ko
< prev
next >
Wrap
Extensible Markup Language
|
2004-07-09
|
20KB
|
519 lines
<?xml version='1.0' encoding='EUC-KR' ?>
<!DOCTYPE manualpage SYSTEM "../style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
<!-- English Revision: 1.2.2.9 -->
<!--
Copyright 2004 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manualpage metafile="cgi.xml.meta">
<parentdocument href="./">How-To / Tutorials</parentdocument>
<title>╛╞╞──í ┼⌡┼Σ╕«╛≤: CGI╕ª ╗τ┐δ╟╤ ╡┐└√ ╞Σ└╠┴÷ ╗²╝║</title>
<section id="intro">
<title>╝╥░│</title>
<related>
<modulelist>
<module>mod_alias</module>
<module>mod_cgi</module>
</modulelist>
<directivelist>
<directive module="mod_mime">AddHandler</directive>
<directive module="core">Options</directive>
<directive module="mod_alias">ScriptAlias</directive>
</directivelist>
</related>
<p>CGI (Common Gateway Interface)┤┬ └Ñ╝¡╣÷░í ║╕┼δ CGI ╟┴╖╬▒╫╖Ñ
╚ñ└║ CGI ╜║┼⌐╕│╞«╢≤░φ ║╬╕ú┤┬, (└Ñ╞Σ└╠┴÷ │╗┐δ└╗ ╕╕╡σ┤┬) ┐▄║╬
╟┴╖╬▒╫╖Ñ░· ┼δ╜┼╟╧┤┬ ╣µ╣²└╗ ┴ñ└╟╟╤┤┘. └Ñ╗τ└╠╞«┐í╝¡ ╡┐└√└╬
╞Σ└╠┴÷╕ª ╕╕╡σ┤┬ ░í└σ ╚τ╟╧░φ ░ú┤▄╟╤ ╣µ╣²└╠┤┘. └╠ ╣«╝¡┤┬ ╛╞╞──í
└Ñ╝¡╣÷┐í CGI╕ª ▒╕╝║╟╧┤┬ ╣µ╣²└╗ ╝╥░│╟╧░φ, CGI ╟┴╖╬▒╫╖Ñ└╗
└█╝║╟╪║╗┤┘.</p>
</section>
<section id="configuring">
<title>CGI╕ª ╟π┐δ╟╧╡╡╖╧ ╛╞╞──í ╝│┴ñ╟╧▒Γ</title>
<p>CGI ╟┴╖╬▒╫╖Ñ└╠ ┐├╣┘╖╬ ╡┐└█╟╧╖┴╕Θ CGI ╜╟╟α└╠ ░í┤╔╟╧╡╡╖╧
╛╞╞──í╕ª ╝│┴ñ╟╪╛▀ ╟╤┤┘. ╝│┴ñ╟╧┤┬ ╣µ╣²└║ ┐⌐╖»░í┴÷┤┘.</p>
<section id="scriptalias">
<title>ScriptAlias</title>
<p><directive module="mod_alias">ScriptAlias</directive>
┴÷╜├╛ε╕ª ╗τ┐δ╟╧╕Θ ╛╞╞──í┤┬ ╞»┴ñ ╡≡╖║┼Σ╕«╕ª CGI ╟┴╖╬▒╫╖Ñ┐δ└╕╖╬
╡╨┤┘. ╛╞╞──í┤┬ └╠ ╡≡╖║┼Σ╕«┐í └╓┤┬ ╕≡╡τ ╞─└╧└╠ CGI
╟┴╖╬▒╫╖Ñ└╠╢≤░φ ░í┴ñ╟╧┐⌐ ┼¼╢≤└╠╛≡╞«░í └┌┐°└╗ ┐Σ├╗╟╧╕Θ └┌┐°└╗
╜╟╟α╟╧╖┴░φ ╜├╡╡╟╤┤┘.</p>
<p><directive module="mod_alias">ScriptAlias</directive>
┴÷╜├╛ε┤┬ ┤┘└╜░· ░░└╠ ╗τ┐δ╟╤┤┘.</p>
<example>
ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/
</example>
<p>└º ┐╣┴ª┤┬ ╛╞╞──í╕ª ▒Γ║╗ └σ╝╥┐í ╝│─í╟╤ ░µ┐∞
<code>httpd.conf</code> ╝│┴ñ╞─└╧┐í └╓┤┬ │╗┐δ└╠┤┘. <directive
module="mod_alias">ScriptAlias</directive> ┴÷╜├╛ε┤┬ <directive
module="mod_alias">Alias</directive> ┴÷╜├╛ε┐═ ░░└╠ URL
╛╒║╬║╨└╗ ╞»┴ñ ╡≡╖║┼Σ╕«╖╬ ┤δ└└╟╤┤┘.
<directive>Alias</directive>┐═
<directive>ScriptAlias</directive>┤┬ ║╕┼δ <directive
module="core">DocumentRoot</directive> ╡≡╖║┼Σ╕« ╣█┐í └╓┤┬
╡≡╖║┼Σ╕«┐í ╗τ┐δ╟╤┤┘. <directive>Alias</directive>┐═
<directive>ScriptAlias</directive>└╟ ┬≈└╠┴í└║
<directive>ScriptAlias</directive>░í ├▀░í╖╬ URL ╛╒║╬║╨└╕╖╬
╜├└█╟╧┤┬ ╕≡╡τ ╞─└╧└╗ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ ├δ▒▐╟╧┤┬ ┴í└╠┤┘.
▒╫╖í╝¡ └º└╟ ╝│┴ñ└║ ╛╞╞──í┐í░╘ <code>/cgi-bin/</code>└╕╖╬
╜├└█╟╧┤┬ └┌┐°└╗ ┐Σ├╗╟╧╕Θ
<code>/usr/local/apache2/cgi-bin/</code> ╡≡╖║┼Σ╕«┐í╝¡
├ú╛╞╝¡ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ ├│╕«╟╧╢≤░φ ╛╦╕░┤┘.</p>
<p>┐╣╕ª ╡Θ╛ε, URL
<code>http://www.example.com/cgi-bin/test.pl</code>└╗
┐Σ├╗╟╧╕Θ ╛╞╞──í┤┬
<code>/usr/local/apache2/cgi-bin/test.pl</code> ╞─└╧└╗
╜╟╟α╟╧┐⌐ ░ß░·╕ª ╣▌╚»╟╤┤┘. ╣░╖╨ ╞─└╧└╠ ┴╕└τ╟╧░φ ╜╟╟α░í┤╔╟╧╕τ
╛ε╢▓ ╣µ╣²└╕╖╬╡τ ├Γ╖┬└╗ ╟╪╛▀ ╟╤┤┘. ▒╫╖╕┴÷ ╛╩└╕╕Θ ╛╞╞──í┤┬
┐└╖∙╣«└╗ ║╕│╜┤┘.</p>
</section>
<section id="nonscriptalias">
<title>ScriptAlias ╡≡╖║┼Σ╕« ╣█┐í └╓┤┬ CGI</title>
<p>║╕┼δ ║╕╛╚╗≤ └╠└»╢º╣«┐í CGI ╟┴╖╬▒╫╖Ñ└║ <directive
module="mod_alias">ScriptAlias</directive>╟╤ ╡≡╖║┼Σ╕«┐í
╟╤┴ñ╟╤┤┘. ▒╫╖í╝¡ ░ⁿ╕«└┌┤┬ ┤⌐░í CGI ╟┴╖╬▒╫╖Ñ└╗ ╗τ┐δ╟╥ ╝÷
└╓┤┬┴÷ ╛÷░▌╚≈ ░¿╡╢╟╥ ╝÷ └╓┤┘. ▒╫╖»│¬ └√┤τ╟╤ ║╕╛╚┴╢─í╕ª
├δ╟▀┤┘╕Θ ╛╞╣½ ╡≡╖║┼Σ╕«┐í╝¡│¬ CGI ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╧┴÷ ╛╩└╗
└╠└»░í ╛°┤┘. ┐╣╕ª ╡Θ╛ε, <directive
module="mod_userdir">UserDir</directive> ┴÷╜├╛ε╕ª ╗τ┐δ╟╧┐⌐
╗τ┐δ└┌░í └┌╜┼└╟ ╚¿╡≡╖║┼Σ╕«┐í └Ñ╞Σ└╠┴÷╕ª ░í┴÷┤┬ ░µ┐∞╕ª
░í┴ñ╟╧└┌. ╗τ┐δ└┌░í └┌╜┼└╟ CGI ╟┴╖╬▒╫╖Ñ└╗ ╗τ┐δ╟╧░φ ╜═└║╡Ñ
<code>cgi-bin</code> ╡≡╖║┼Σ╕«┐í ┴ó▒┘▒╟╟╤└╠ ╛°┤┘╕Θ, ┤┘╕Ñ
░≈┐í╝¡╢≤╡╡ CGI ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╧░φ ╜═└╗ ░═└╠┤┘.</p>
<p>╛╞╣½ ╡≡╖║┼Σ╕«┐í╝¡│¬ CGI ╜╟╟α└╗ ╟π┐δ╟╧╖┴╕Θ ╡╬ ░·┴ñ└╠
╟╩┐Σ╟╧┤┘. ╕╒└·, <directive
module="mod_mime">AddHandler</directive>│¬ <directive
module="core">SetHandler</directive> ┴÷╜├╛ε╕ª ╗τ┐δ╟╧┐⌐
<code>cgi-script</code> ╟┌╡Θ╖»╕ª └█╡┐╟╪╛▀ ╟╤┤┘. ╡╬╣°┬░╖╬,
<directive module="core">Options</directive> ┴÷╜├╛ε┐í
<code>ExecCGI</code>╕ª ┴÷┴ñ╟╪╛▀ ╟╤┤┘.</p>
</section>
<section id="options">
<title>Options╕ª ╗τ┐δ╟╧┐⌐ ╕φ╜├└√└╕╖╬ CGI ╜╟╟α└╗ ╟π┐δ╟╧▒Γ</title>
<p>╝¡╣÷└╟ ┴╓╝│┴ñ╞─└╧┐í ┴≈┴ó <directive
module="core">Options</directive> ┴÷╜├╛ε╕ª ╗τ┐δ╟╧┐⌐ ╞»┴ñ
╡≡╖║┼Σ╕«┐í╝¡ CGI ╜╟╟α└╗ ╟π┐δ╟╥ ╝÷ └╓┤┘.</p>
<example>
<Directory /usr/local/apache2/htdocs/somedir><br />
<indent>
Options +ExecCGI<br />
</indent>
</Directory>
</example>
<p>└º ┴÷╜├╛ε╖╬ ╛╞╞──í┤┬ CGI ╞─└╧└╟ ╜╟╟α└╗ ╟π┐δ╟╤┤┘. ╛ε╢▓
╞─└╧└╠ CGI ╞─└╧└╬┴÷╡╡ ╝¡╣÷┐í░╘ ╛╦╖┴╛▀ ╟╤┤┘. ┤┘└╜ <directive
module="mod_mime">AddHandler</directive> ┴÷╜├╛ε┤┬ ╝¡╣÷┐í░╘
╚«└σ└┌░í <code>cgi</code>│¬ <code>pl</code>└╬ ╞─└╧└║ ╕≡╡╬
CGI ╟┴╖╬▒╫╖Ñ└╠╢≤░φ ╛╦╕░┤┘.</p>
<example>
AddHandler cgi-script .cgi .pl
</example>
</section>
<section id="htaccess">
<title>.htaccess ╞─└╧</title>
<p><a href="htaccess.html"><code>.htaccess</code> ┼⌡┼Σ╕«╛≤</a>└║
<code>httpd.conf</code>┐í ┴ó▒┘▒╟╟╤└╠ ╛°┤┬ ░µ┐∞┐í CGI ╟┴╖╬▒╫╖Ñ└╗
╗τ┐δ╟╥ ╝÷ └╓┤┬ ╣µ╣²└╗ ╛╦╖┴┴╪┤┘.</p>
</section>
<section id="userdir">
<title>╗τ┐δ└┌ ╡≡╖║┼Σ╕«</title>
<p>╛╞╖í ╝│┴ñ└╗ ╗τ┐δ╟╧╕Θ ╗τ┐δ└┌ ╡≡╖║┼Σ╕«┐í╝¡ <code>.cgi</code>╖╬
│í│¬┤┬ ╞─└╧└╗ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ ╜╟╟α╟╤┤┘.</p>
<example>
<Directory /home/*/public_html><br/>
<indent>
Options +ExecCGI<br/>
AddHandler cgi-script .cgi<br/>
</indent>
</Directory>
</example>
<p>┤┘└╜└╗ ╗τ┐δ╟╧╕Θ ╗τ┐δ└┌ ╡≡╖║┼Σ╕«└╟ <code>cgi-bin</code>
╟╧└º╡≡╖║┼Σ╕«┐í └╓┤┬ ╕≡╡τ ╞─└╧└╗ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ └╬╜─╟╤┤┘.</p>
<example>
<Directory /home/*/public_html/cgi-bin><br/>
<indent>
Options ExecCGI<br/>
SetHandler cgi-script<br/>
</indent>
</Directory>
</example>
</section>
</section>
<section id="writing">
<title>CGI ╟┴╖╬▒╫╖Ñ └█╝║╟╧▒Γ</title>
<p>``└╧╣▌└√└╬'' ╟┴╖╬▒╫╖í╣╓░· CGI ╟┴╖╬▒╫╖í╣╓ ╗τ└╠┐í┤┬ ╡╬░í┴÷
┴╓╡╚ ┬≈└╠┴í└╠ └╓┤┘.</p>
<p>├╣╣°┬░ ┬≈└╠┤┬ CGI ╟┴╖╬▒╫╖Ñ└║ ┤┘╕Ñ ├Γ╖┬└╗ ╟╧▒Γ└ⁿ┐í ╕╒└·
MIME-type ╟∞┤⌡╕ª ├Γ╖┬╟╪╛▀ ╟╤┤┘┤┬ ┴í└╠┤┘. HTTP ╟∞┤⌡┤┬
┼¼╢≤└╠╛≡╞«┐í░╘ ┼¼╢≤└╠╛≡╞«░í ╛ε╢▓ │╗┐δ└╗ ╣▐░╘╡╔┴÷ ╣╠╕« ╛╦╕░┤┘.
║╕┼δ ┤┘└╜░· ░░┤┘.</p>
<example>
Content-type: text/html
</example>
<p>╡╬╣°┬░ ┬≈└╠┤┬ HTML ╚ñ└║ ║Ω╢≤┐∞└·░í ║╕┐⌐┴┘ ╝÷ └╓┤┬ ╟ⁿ╜─└╕╖╬
├Γ╖┬╟╪╛▀ ╟╤┤┘┤┬ ┴í└╠┤┘. ┤δ║╬║╨└╟ ░µ┐∞ HTML└╗ ├Γ╖┬╟╧┴÷╕╕,
╢º╢º╖╬ gif ▒╫╕▓░· ░░└╠ HTML└╠ ╛╞┤╤ │╗┐δ└╗ ├Γ╖┬╟╧┤┬ CGI
╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╧┤┬ ░µ┐∞╡╡ └╓┤┘.</p>
<p>╡╬░í┴÷╕ª ┴ª┐▄╟╧░φ┤┬ CGI ╟┴╖╬▒╫╖Ñ └█╝║└║ └╠╣╠ ╕╕╡Θ╛ε ║╕╛╥└╗
┤┘╕Ñ ╟┴╖╬▒╫╖Ñ╡Θ░· ╕┼┐∞ ║±╜┴╟╧┤┘.</p>
<section id="firstcgi">
<title>├│└╜└╕╖╬ ╕╕╡τ CGI ╟┴╖╬▒╫╖Ñ</title>
<p>┤┘└╜└║ ║Ω╢≤┐∞└·┐í ╟╤ ┴┘└╗ ┬∩┤┬ CGI ╟┴╖╬▒╫╖Ñ ┐╣┴ª┤┘.
▒╫┤δ╖╬ <code>first.pl</code>└╠╢≤┤┬ ╞─└╧┐í └·└σ╟╧░φ,
<code>cgi-bin</code> ╡≡╖║┼Σ╕«┐í ║╣╗τ╟╤┤┘.</p>
<example>
#!/usr/bin/perl<br />
print "Content-type: text/html\n\n";<br />
print "Hello, World.";
</example>
<p>Perl┐í └═╝≈╟╧┴÷ ╛╩┤⌡╢≤╡╡ ╣½╜╝ └╧└╠ └╧╛ε│¬┤┬┴÷ ╛╦ ╝÷
└╓┤┘. ├╣╣°┬░ ┴┘└║ ╛╞╞──í(╚ñ└║ ╗τ┐δ╟╧┤┬ ╜⌐)┐í░╘
<code>/usr/bin/perl</code> └º─í┐í └╓┤┬ └╬┼═╟┴╕«┼═└╗ ╗τ┐δ╟╧┐⌐
└╠ ╟┴╖╬▒╫╖Ñ ╞─└╧└╗ ╜╟╟α╟╧╢≤░φ ╛╦╕░┤┘. ╡╬╣°┬░ ┴┘└║ ╣µ▒▌
╕╗╟╤ content-type ╝▒╛≡└╗ ├Γ╖┬╟╧░φ carriage-return ┴┘╣┘▓▐└╗
╡╬╣° ├Γ╖┬╟╤┤┘. ▒╫╖»╕Θ ╟∞┤⌡ ╡┌┐í HTTP ╟∞┤⌡└╟ │í└╗ ╢µ╟╧┤┬
║≤┴┘└╠ ╗²▒Γ░φ, ║╗╣«└╠ ╜├└█╟╤┤┘. ╝╝╣°┬░ ┴┘└║ "Hello, World."
╣«└┌┐¡└╗ ├Γ╖┬╟╤┤┘. └╠░═└╕╖╬ │í└╠┤┘.</p>
<p>║Ω╢≤┐∞└·╕ª ╜╟╟α╟╧░φ ┴╓╝╥╕ª └╘╖┬╟╤┤┘</p>
<example>
http://www.example.com/cgi-bin/first.pl
</example>
<p>╞─└╧ └σ╝╥╕ª └╘╖┬╟╧╕Θ, ║Ω╢≤┐∞└·├ó┐í <code>Hello, World.</code>
╟╤ ┴┘└╠ ║╕└╬┤┘. ╚∩║╨╡╟┴÷┤┬ ╛╩┴÷╕╕, ╟╤╣° ╡┐└█╟╧┤┬ ░═└╗
║╕╛╥└╕┤╧ └╠┴ª ┤┘╕Ñ ░═└╗ ╜├╡╡╟╪ ║╝ ╝÷ └╓┤┘.</p>
</section>
</section>
<section id="troubleshoot">
<title>▒╫╖»│¬ ╛╞┴≈ ╡┐└█╟╧┴÷ ╛╩╛╞┐Σ!</title>
<p>└Ñ┐í╝¡ CGI ╟┴╖╬▒╫╖Ñ┐í ┴ó▒┘╟╥╢º ║Ω╢≤┐∞└·┐í │¬┐├ ╝÷ └╓┤┬
│╗┐δ└║ ▒Γ║╗└√└╕╖╬ │╫░í┴÷┤┘.</p>
<dl>
<dt>CGI ╟┴╖╬▒╫╖Ñ└╟ ├Γ╖┬</dt>
<dd>┴┴┤┘! ╕≡╡τ ░═└╠ └▀ ╡┐└█╟╤┤┘┤┬ ╢µ└╠┤┘. ├Γ╖┬└║ ┴ñ╚«╟╧┴÷╕╕
║Ω╢≤┐∞└·░í ┐├╣┘╖╬ ├│╕«╟╧┴÷ ╕°╟╤┤┘╕Θ, CGI ╟┴╖╬▒╫╖Ñ┐í╝¡
┐├╣┘╕Ñ <code>Content-Type</code>└╗ ╝│┴ñ╟╧┐┤┤┬┴÷ ╚«└╬╟╤┤┘.</dd>
<dt>CGI ╟┴╖╬▒╫╖Ñ ╝╥╜║─┌╡σ ╚ñ└║ "POST Method Not Allowed"
╣«▒╕</dt>
<dd>CGI ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╧╡╡╖╧ ╛╞╞──í╕ª └√└²╚≈ ╝│┴ñ╟╧┴÷
╛╩╛╥┤┘┤┬ ╢µ└╠┤┘. <a href="#configuring">╛╞╞──í ╝│┴ñ╟╧▒Γ</a>
└²└╗ ┤┘╜├ └╨░φ ╗⌐╕╘└║ ║╬║╨└╠ └╓┤┬┴÷ ├ú╛╞║┴╢≤.</dd>
<dt>"Forbidden"└╕╖╬ ╜├└█╟╧┤┬ ╣«▒╕</dt>
<dd>▒╟╟╤ ╣«┴ª░í └╓┤┘┤┬ ╢µ└╠┤┘. <a href="#errorlogs">╛╞╞──í
┐└╖∙ ╖╬▒╫</a>┐═ ╛╞╖í <a href="#permissions">╞─└╧▒╟╟╤</a>
└²└╗ ╚«└╬╟╧╢≤.</dd>
<dt>"Internal Server Error"╢≤┤┬ ╣«▒╕</dt>
<dd><a href="#errorlogs">╛╞╞──í ┐└╖∙ ╖╬▒╫</a>╕ª ║╕╕Θ ╛╞╕╢╡╡
CGI ╟┴╖╬▒╫╖Ñ└╠ ├Γ╖┬╟╤ ┐└╖∙╣«░· ╟╘▓▓ "Premature end of
script headers"░í ║╕└╧ ░═└╠┤┘. └╠ ░µ┐∞ ╛╞╖í │╗┐δ╡Θ└╗ ╟╧│¬╛┐
╚«└╬╟╧┐⌐ ╛ε╢▓ └╠└»╖╬ CGI ╟┴╖╬▒╫╖Ñ└╠ └√└²╟╤ HTTP ╟∞┤⌡╕ª
├Γ╖┬╟╧┴÷ ╕°╟▀┤┬┴÷ ╛╦╛╞║╗┤┘.</dd>
</dl>
<section id="permissions">
<title>╞─└╧▒╟╟╤</title>
<p>╝¡╣÷┤┬ ┤τ╜┼░· ╡┐└╧╟╤ ░Φ┴ñ└╕╖╬ ╡┐└█╟╧┴÷ ╛╩└╜└╗ ╕φ╜╔╟╧╢≤.
┴∩, ╝¡╣÷░í ╜├└█╟╧╕Θ ╝¡╣÷┤┬ ║±╞»▒╟ ╗τ┐δ└┌ ▒╟╟╤(║╕┼δ
<code>nobody</code>│¬ <code>www</code>)└╕╖╬ ╡┐└█╟╤┤┘.
▒╫╖í╝¡ ┤τ╜┼└╠ ╝╥└»╟╤ ╞─└╧└╗ ╜╟╟α╟╧╖┴╕Θ ▒╟╟╤└╠ ╟╩┐Σ╟╧┤┘.
╞─└╧┐í <code>nobody</code>░í ╜╟╟α╟╧▒Γ┐í ├µ║╨╟╤ ▒╟╟╤└╗
┴╓▒Γ└º╟╪ ║╕┼δ ╕≡╡╬┐í░╘ ╞─└╧└╟ ╜╟╟α ▒╟╟╤└╗ ┴╪┤┘.</p>
<example>
chmod a+x first.pl
</example>
<p>╢╟, ╟┴╖╬▒╫╖Ñ└╠ ┤┘╕Ñ ╞─└╧└╗ └╨░┼│¬ ╛┤┤┘╕Θ └╠ ╞─└╧┐í╡╡
└√└²╟╤ ▒╟╟╤└╠ ╟╩┐Σ╟╧┤┘.</p>
</section>
<section id="pathinformation">
<title>░µ╖╬ ┴ñ║╕┐═ ╚»░µ</title>
<p>╕φ╖╔╟α┐í╝¡ ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╧╕Θ └┌╡┐└╕╖╬ ╛ε╢▓ ┴ñ║╕░í
╜⌐╖╬ └ⁿ┤▐╡╚┤┘. ┐╣╕ª ╡Θ╛ε, <code>PATH</code>┤┬ ╜⌐┐í░╘ ┤τ╜┼└╠
╕╗╟╤ ╞─└╧└╗ ├ú└╗ └σ╝╥╕ª ╛╦╖┴┴╪┤┘.</p>
<p>└Ñ╝¡╣÷░í ╟┴╖╬▒╫╖Ñ└╗ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ ╜╟╟α╟╥╢º┤┬
<code>PATH</code>░í ┤┘╕ª ╝÷ └╓┤┘. (┐╣╕ª ╡Θ╛ε,
<code>sendmail</code> ░░└╠) CGI ╟┴╖╬▒╫╖Ñ ╛╚┐í╝¡ ╜╟╟α╟╧┤┬
╕φ╖╔╛ε┤┬ ┐╧└ⁿ╟╤ ░µ╖╬╖╬ ╕φ╜├╟╪╛▀ ╜⌐└╠ ╕φ╖╔╛ε╕ª ├ú└╗ ╝÷
└╓┤┘.</p>
<p>░µ╖╬ ╣«┴ª┤┬ ┤┘└╜░· ░░└╠ CGI ╟┴╖╬▒╫╖Ñ ├╣╣°┬░ ┴┘┐í │¬┐└┤┬
╜║┼⌐╕│╞« └╬┼═╟┴╕«┼═ (║╕┼δ <code>perl</code>) ░µ╖╬┐í╝¡
└┌┴╓ ╣▀╗²╟╤┤┘.</p>
<example>
#!/usr/bin/perl
</example>
<p>╜╟┴ª╖╬ └╬┼═╟┴╕«┼═└╟ ░µ╖╬└╬┴÷ ╚«└╬╟╤┤┘.</p>
<p>╢╟, CGI ╟┴╖╬▒╫╖Ñ└╠ ┤┘╕Ñ <a href="#env">╚»░µ║»╝÷</a>╕ª
╗τ┐δ╟╤┤┘╕Θ ╛╞╞──í░í └╠ ║»╝÷╡Θ└╗ ╟┴╖╬▒╫╖Ñ┐í░╘ └ⁿ┤▐╟╪╛▀
╟╤┤┘.</p>
</section>
<section id="syntaxerrors">
<title>╟┴╖╬▒╫╖Ñ ┐└╖∙</title>
<p>CGI ╟┴╖╬▒╫╖Ñ└╠ ╜╟╞╨╟╧┤┬ ░µ┐∞ ┤δ║╬║╨ ╟┴╖╬▒╫╖Ñ └┌├╝
╣«┴ª╢º╣«└╠┤┘. ╞»╚≈ └º└╟ ╡╬░í┴÷ ╜╟╝÷╕ª ╟╧┴÷ ╛╩╛╥░φ └╠ ▒█└╗
░Φ╝╙ ║╕░φ └╓┤┘╕Θ ┤⌡┤⌡┐φ ▒╫╖╕┤┘. ╕╒└· └Ñ╝¡╣÷┐í╝¡ ╜╟╟α╟╧▒Γ
└ⁿ┐í ╕φ╖╔╟α┐í╝¡ ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╪║╗┤┘. ┐╣╕ª ╡Θ╛ε, ┤┘└╜░·
░░└╠ ╜╟╟α╟╤┤┘.</p>
<example>
cd /usr/local/apache2/cgi-bin<br/>
./first.pl
</example>
<p>(<code>perl</code> └╬┼═╟┴╕«┼═╕ª ╜╟╟α╟╧┴÷ ╕╢╢≤. ╜⌐░·
╛╞╞──í┤┬ ╜║┼⌐╕│╞« ├╣╣°┬░ ┴┘┐í └╓┤┬ <a
href="#pathinformation">░µ╖╬ ┴ñ║╕</a>╕ª ╗τ┐δ╟╧┐⌐ └╬┼═╟┴╕«┼═╕ª
├ú╛╞╛▀ ╟╤┤┘.)</p>
<p>╟┴╖╬▒╫╖Ñ└║ ┴ª└╧ ╕╒└· <code>Content-Type</code>└╗ ╞≈╟╘╟╤
HTTP ╟∞┤⌡╡Θ└╗ ├Γ╖┬╟╧░φ ║≤ ┴┘└╗ ├Γ╖┬╟╪╛▀ ╟╤┤┘. ┤┘╕Ñ ░═└╗
├Γ╖┬╟╤┤┘╕Θ └Ñ╝¡╣÷┐í╝¡ ╜╟╟α╟╥ ░µ┐∞ ╛╞╞──í┤┬ <code>Premature
end of script headers</code>╕ª ╣▌╚»╟╤┤┘. └┌╝╝╟╤ │╗┐δ└║
└º└╟ <a href="#writing">CGI ╟┴╖╬▒╫╖Ñ └█╝║╟╧▒Γ</a>╕ª ┬ⁿ░φ╟╧╢≤.</p>
</section>
<section id="errorlogs">
<title>┐└╖∙ ╖╬▒╫</title>
<p>┐└╖∙ ╖╬▒╫┤┬ ┤τ╜┼ ╞φ└╠┤┘. ╣½╛≡░í └▀╕°╡╟╕Θ ┐└╖∙ ╖╬▒╫┐í
╣«▒╕░í ╗²▒Σ┤┘. ┐└╖∙ ╖╬▒╫╕ª ┴ª└╧ ╕╒└· ╗∞╞∞║┴╛▀ ╟╤┤┘. └Ñ╗τ└╠╞«╕ª
╚ú╜║╞├╟╧┤┬ ░≈┐í╝¡ ┐└╖∙ ╖╬▒╫╕ª ║╕┴÷ ╕°╟╧░╘ ╟╤┤┘╕Θ, ╛╞╕╢╡╡
┤┘╕Ñ ╛≈├╝╕ª ╛╦╛╞║┴╛▀ ╟╤┤┘. ┐└╖∙ ╖╬▒╫╕ª ║╕┤┬ ╣µ╣²└╗ └═╚≈╕Θ,
┤δ║╬║╨└╟ ╣«┴ª╕ª ╗í╕« ╞─╛╟╟╧┐⌐ ╟╪░ß╟╥ ╝÷ └╓┤┘.</p>
</section>
<section id="suexec">
<title>Suexec</title>
<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> └º─í╕ª ╚«└╬╟╤┤┘. ╛╞╞──í░í
╜├└█╟╥╢º ▒╫ └σ╝╥┐í╝¡ suexec ╜╟╟α╞─└╧└╗ ╣▀░▀╟╧╕Θ, suexec╕ª
╗τ┐δ╟╥ ╝÷ └╓┤┘.</p>
<p>suexec╕ª ┐╧└ⁿ╚≈ └╠╟╪╟╧┴÷ ╕°╟▀┤┘╕Θ ╗τ┐δ╟╪╝¡┤┬ ╛╚╡╚┤┘.
suexec╕ª ╗τ┐δ╟╧┴÷ ╛╩└╕╖┴╕Θ <code>SUEXEC_BIN</code> └º─í┐í
└╓┤┬ <code>suexec</code> ╜╟╟α╞─└╧└╗ ┴÷┐∞░φ (╚ñ└║ ╞─└╧╕φ└╗
╣┘▓┘░φ) ╝¡╣÷╕ª └τ╜├└█╟╧╕Θ ╡╚┤┘. <a
href="../suexec.html">suexec</a>┐í ┤δ╟╪ └╨└║ ┤┘└╜ ▒╫╖í╡╡
╗τ┐δ╟╧░φ ╜═┤┘╕Θ, <code>suexec -V</code>╕ª ╜╟╟α╟╧┐⌐ suexec
╖╬▒╫╞─└╧ └º─í╕ª ╛╦╛╞│╗░φ ╖╬▒╫╞─└╧┐í╝¡ ┤τ╜┼└╠ ╛ε╢▓ ▒╘─ó└╗
╛ε▒Γ░φ └╓┤┬┴÷ ├ú┤┬┤┘.</p>
</section>
</section>
<section id="behindscenes">
<title>╡┌┐í╝¡┤┬ ╣½╜╝ └╧└╠ ╣·╛ε┴÷┤┬░í?</title>
<p>CGI ╟┴╖╬▒╫╖í╣╓┐í └═╝≈╟╪┴·╝÷╖╧ ╡┌┐í╝¡ ╣·╛ε┴÷┤┬ └╧└╗ └╠╟╪╟╧╕Θ
╡╡┐≥└╠ ╡╚┤┘. ▒╕├╝└√└╕╖╬ ║Ω╢≤┐∞└·┐═ ╝¡╣÷░í ╝¡╖╬ ┼δ╜┼╟╧┤┬
╣µ╣²└╗ ╕╗╟╧┤┬ ░═└╠┤┘. ╕⌠╢≤╡╡ "Hello, World."╕ª ├Γ╖┬╟╧┤┬
╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╥ ╝÷ └╓┴÷╕╕ └╠╖▒ ╟┴╖╬▒╫╖Ñ└║ ║░╖╬ ╛╡╕≡░í
╛°▒Γ╢º╣«└╠┤┘.</p>
<section id="env">
<title>╚»░µ║»╝÷</title>
<p>╚»░µ║»╝÷┤┬ ┤τ╜┼└╠ ──╟╗┼═╕ª ╗τ┐δ╟╧┤┬ ╡┐╛╚ ┤τ╜┼ ┴╓└º╕ª
╢░┤┘┤╧┤┬ ░¬└╠┤┘. ╚»░µ║»╝÷┤┬ path (──╟╗┼═░í ┤τ╜┼└╠ └╘╖┬╟╤
╕φ╖╔╛ε┐í ╟╪┤τ╟╧┤┬ ╜╟┴ª ╞─└╧└╗ ├ú┤┬ └σ╝╥), ╗τ┐δ└┌╕φ, ┼═╣╠│╬
┴╛╖∙┐═ ░░└╠ └»┐δ╟╤ ┴ñ║╕┤┘. └╧╣▌└√└╬ ╚»░µ║»╝÷╕ª ╕≡╡╬ ║╕╖┴╕Θ
╕φ╖╔╟α ╟┴╖╥╟┴╞«┐í╝¡ <code>env</code>╕ª └╘╖┬╟╤┤┘.</p>
<p>CGI╕ª ╜╟╟α╟╥╢º╡╡ ╝¡╣÷┐═ ║Ω╢≤┐∞└·┤┬ ░ó└┌└╟ ╚»░µ║»╝÷╕ª
╝¡╖╬ ▒│╚»╟╤┤┘. └╠ ┴ñ║╕┐í┤┬ ║Ω╢≤┐∞└· ┴╛╖∙ (Netscape, IE,
Lynx), ╝¡╣÷ ┴╛╖∙ (╛╞╞──í, 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 ╟┴╖╬▒╫╖Ñ└║ └┌╜┼┐í░╘ └ⁿ┤▐╡╚ ╕≡╡τ
╚»░µ║»╝÷╕ª ║╕┐⌐┴╪┤┘. ╛╞╞──í ╣Φ╞≈║╗└╟ <code>cgi-bin</code>
╡≡╖║┼Σ╕«┐í └╠┐═ ║±╜┴╟╤ ╟┴╖╬▒╫╖Ñ└╠ ╡╬░│ └╓┤┘. ╕ε╕ε ║»╝÷┤┬
╟╩╝÷└╠░φ │¬╕╙┴÷┤┬ ╝▒┼├└√└╠┤┘. ▒╫╖í╝¡ ░°╜─ ╕±╖╧┐í ╛°┤┬
║»╝÷╡╡ ║╕└╬┤┘. ╢╟, ╛╞╞──í┤┬ ▒Γ║╗└√└╕╖╬ ┴ª░°╟╧┤┬ ╚»░µ║»╝÷
┐▄┐í ┐⌐╖»░í┴÷ ╣µ╣²└╕╖╬ <a href="../env.html">┴≈┴ó ╚»░µ║»╝÷╕ª
├▀░í╟╥ ╝÷ └╓┤┘</a>.</p>
<example>
#!/usr/bin/perl<br />
print "Content-type: text/html\n\n";<br />
foreach $key (keys %ENV) {<br />
<indent>
print "$key --> $ENV{$key}<br>";<br />
</indent>
}
</example>
</section>
<section id="stdin">
<title>STDIN░· STDOUT</title>
<p>╢╟, ╝¡╣÷┐═ ┼¼╢≤└╠╛≡╞«┤┬ ╟Ñ┴╪└╘╖┬(<code>STDIN</code>)░·
╟Ñ┴╪├Γ╖┬(<code>STDOUT</code>)└╕╖╬ ┼δ╜┼╟╤┤┘. └╧╗≤└√└╬ ░µ┐∞
<code>STDIN</code>└║ ┼░║╕╡σ│¬ ╟┴╖╬▒╫╖Ñ└╠ ├│╕«╟╧┤┬ ╞─└╧└╗
│¬┼╕│╗░φ, <code>STDOUT</code>└║ ║╕┼δ ─▄╝╓└╠│¬ ╚¡╕Θ└╗ ╢µ╟╤┤┘.</p>
<p>CGI ╟┴╖╬▒╫╖Ñ┐í░╘ └Ñ ╛τ╜─(form)└╗ <code>POST</code>╟╧╕Θ
╛τ╜─┐í └╘╖┬╟╤ └┌╖ß╕ª ╞»║░╟╤ ╟ⁿ╜─└╕╖╬ ╣¡╛ε╝¡ CGI ╟┴╖╬▒╫╖Ñ└╟
<code>STDIN</code>└╕╖╬ └ⁿ┤▐╟╤┤┘. ▒╫╖»╕Θ ╟┴╖╬▒╫╖Ñ└║ ┼░║╕╡σ│¬
╞─└╧┐í╝¡ ╛≥└║ └┌╖ß╕ª ├│╕«╟╧╡φ└╠ └┌╖ß╕ª ├│╕«╟╥ ╝÷ └╓┤┘.</p>
<p>"╞»║░╟╤ ╟ⁿ╜─"└║ ╕┼┐∞ ░ú┤▄╟╧┤┘. ╟╫╕± └╠╕º░· ░¬└╗ ╡ε╚ú(=)╖╬
┐¼░ß╟╧░φ, ╟╫╕± └╠╕º░· ░¬└╟ ╜╓╡Θ└╗ ╝¡╖╬ ╛╪╞█╗≈╡σ(&)╖╬
┐¼░ß╟╤┤┘. ░°╣Θ, ╛┌╞█╗≈╡σ, ╡ε╚ú ░░└║ ║╬└┌┐¼╜║╖»┐ε ╣«└┌┤┬
╚Ñ╡┐╟╧┴÷ ╛╩╡╡╖╧ 16┴°╝÷╖╬ ║»╚»╟╤┤┘. ┐╧└ⁿ╟╤ └┌╖ß ╣«└┌┐¡└║
┤┘└╜░· ░░└╠ ╗²░σ┤┘.</p>
<example>
name=Rich%20Bowen&city=Lexington&state=KY&sidekick=Squirrel%20Monkey
</example>
<p>┴╛┴╛ URL ╡┌┐í╝¡ └╠╖▒ ╣«└┌┐¡└╗ ║╕░╘ ╡╚┤┘. └╠ ░µ┐∞ ╝¡╣÷┤┬
╣«└┌┐¡└╗ <code>QUERY_STRING</code>└╠╢≤┤┬ ╚»░µ║»╝÷┐í └·└σ╟╤┤┘.
└╠╕ª <code>GET</code> ┐Σ├╗└╠╢≤░φ ╟╤┤┘. <code>FORM</code>
┼┬▒╫└╟ <code>METHOD</code> ╝╙╝║└╗ ┴÷┴ñ╟╧┐⌐ HTML ╛τ╜─(form)└╠
└┌╖ß╕ª <code>GET</code>╟╥┴÷ <code>POST</code>╟╥┴÷ ░ß┴ñ╟╤┤┘.</p>
<p>└╠┴ª ╟┴╖╬▒╫╖Ñ└║ └╠╖▒ ╣«└┌┐¡└╗ └»┐δ╟╤ ┴ñ║╕╖╬ ┬╔░│╛▀
╟╤┤┘. ┤┘╟α╚≈╡╡ └╠╖▒ └┌╖ß ├│╕«╕ª ╡╜░φ CGI ╟┴╖╬▒╫╖Ñ└╟ ┤┘╕Ñ
┐⌐╖» ╕Θ└╗ ╗∞╟╟┤┬ ╢≤└╠║Ω╖»╕«┐═ ╕≡╡Γ╡Θ└╠ └╓┤┘.</p>
</section>
</section>
<section id="libraries">
<title>CGI ╕≡╡Γ/╢≤└╠║Ω╖»╕«</title>
<p>CGI ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╥╢º ┴÷╖τ╟╤ └█╛≈└╗ ┤δ╜┼╟╪┴╓┤┬ ─┌╡σ
╢≤└╠║Ω╖»╕« ╚ñ└║ ╕≡╡Γ└╗ ╗τ┐δ╟╥┴÷ ░φ╖┴╟╪║┴╛▀ ╟╤┤┘. └╠╖▒ ░═└╗
╗τ┐δ╟╧╕Θ ╣÷▒╫░í ┴┘░φ ┤⌡ ╗í╕« ╟┴╖╬▒╫╖Ñ└╗ ░│╣▀╟╥ ╝÷ └╓┤┘.</p>
<p>Perl╖╬ CGI ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╤┤┘╕Θ <a
href="http://www.cpan.org/">CPAN</a>┐í╝¡ ░ⁿ╖├ ╕≡╡Γ╡Θ└╗ ├ú└╗
╝÷ └╓┤┘. CGI ░│╣▀┐í ░í└σ │╬╕« ╗τ┐δ╡╟┤┬ ╕≡╡Γ└║
<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>
</section>
<section id="moreinfo">
<title>┤⌡ ╕╣└║ ┴ñ║╕...</title>
<p>└Ñ┐í ╕┼┐∞ ╕╣└║ CGI ┴ñ║╕░í └╓┤┘. ┤║╜║▒╫╖∞ <a
href="news:comp.infosystems.www.authoring.cgi"
>comp.infosystems.www.authoring.cgi</a>┐í╝¡ ┐⌐╖» ╗τ╢≈╡Θ░·
CGI ╣«┴ª╕ª │φ└╟╟╥ ╝÷ └╓┤┘. HTML Writers Guild└╟ -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>╛╞╞──í ╝╥╜║─┌╡σ░í └▀╕°╡╟╛·┤┘░φ ╚«╜┼╟╧┴÷ ╛╩┤┬ ╟╤ CGI ┴·╣«└╗
╛╞╞──í ╣÷▒╫ ╡Ñ└╠┼═║ú└╠╜║┐í ┐├╕«╕Θ <strong>└²┤δ╖╬</strong>
╛╚╡╚┤┘.</p>
</section>
</manualpage>