summaryrefslogtreecommitdiff
path: root/docs/manual/howto/cgi.html.ja.jis
blob: 375463f4b654aa9597014699c9edcdfe2dae9a68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
<?xml version="1.0" encoding="iso-2022-jp"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
  <head>

    <title>Apache Tutorial: CGI $B$K$h$kF0E*%3%s%F%s%D(B</title>
  </head>
  <!-- English revision: 1.4 -->
  <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
  <body bgcolor="#ffffff" text="#000000" link="#0000ff"
  vlink="#000080" alink="#ff0000">
    <!--#include virtual="header.html" -->

    <h1 align="center">CGI $B$K$h$kF0E*%3%s%F%s%D(B</h1>

    <a id="__index__" name="__index__"></a> <!-- INDEX BEGIN -->


    <ul>
      <li><a href="#dynamiccontentwithcgi">CGI
       $B$K$h$kF0E*%3%s%F%s%D(B</a></li>

      <li>
        <a href="#configuringapachetopermitcgi">CGI
        $B$r5v2D$9$k$h$&$K(B Apache $B$r@_Dj$9$k(B</a>

        <ul>
          <li><a href="#scriptalias">ScriptAlias</a></li>

          <li>
            <a href="#cgioutsideofscriptaliasdirectories">ScriptAlias
            $B%G%#%l%/%H%j30$N(B CGI</a>

            <ul>
              <li>
              <a href="#explicitlyusingoptionstopermitcgiexecution">CGI
              $B$N<B9T$r2DG=$K$9$k$?$a$K(B Options $B$rL@<(E*$K;HMQ$9$k(B</a></li>

              <li><a href="#htaccessfiles">.htaccess $B%U%!%$%k(B</a></li>
            </ul>
          </li>
        </ul>
      </li>

      <li>
        <a href="#writingacgiprogram">CGI $B%W%m%0%i%`$r=q$/(B</a>

        <ul>
          <li><a href="#yourfirstcgiprogram">$B$"$J$?$N:G=i$N(B CGI
          $B%W%m%0%i%`(B</a></li>
        </ul>
      </li>

      <li>
        <a href="#butitsstillnotworking">$B$7$+$7!"$^$@F0$+$J$$(B !</a>


        <ul>
          <li><a href="#filepermissions">$B%U%!%$%k$N%Q!<%_%C%7%g%s(B</a></li>

          <li><a href="#pathinformation">$B%Q%9>pJs(B</a></li>

          <li><a href="#syntaxerrors">$B9=J8%(%i!<(B</a></li>

          <li><a href="#errorlogs">$B%(%i!<%m%0(B</a></li>
        </ul>
      </li>

      <li>
        <a href="#whatsgoingonbehindthescenes"
        >$BN"$G2?$,5/$3$C$F$$$k$N$+(B?</a>

        <ul>
          <li><a href="#environmentvariables">$B4D6-JQ?t(B</a></li>


          <li><a href="#stdinandstdout">$BI8=`F~=PNO(B</a></li>
        </ul>
      </li>

      <li><a href="#cgimoduleslibraries">CGI
      $B%b%8%e!<%k(B/$B%i%$%V%i%j(B</a></li>

      <li><a href="#formoreinformation">$B99$J$k>pJs(B</a></li>
    </ul>

    <!-- INDEX END -->
    <hr />

    <h2><a id="dynamiccontentwithcgi"
    name="dynamiccontentwithcgi">CGI $B$K$h$kF0E*%3%s%F%s%D(B</a></h2>

    <table border="1">
      <tr>
        <td valign="top"><strong>$B4XO"%b%8%e!<%k(B</strong><br />
         <br />
         <a href="../mod/mod_alias.html">mod_alias</a><br />
         <a href="../mod/mod_cgi.html">mod_cgi</a><br />
        </td>

        <td valign="top"><strong>$B4XO"%G%#%l%/%F%#%V(B</strong><br />
         <br />
         <a href="../mod/mod_mime.html#addhandler">AddHandler</a>
         <br />
         <a href="../mod/core.html#options">Options</a><br />
         <a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a>
         <br />
        </td>
      </tr>
    </table>

    <p>CGI (Common Gateway Interface) $B$O!"%&%'%V%5!<%P$,(B
    $B%3%s%F%s%D@8@.$r$9$k30It%W%m%0%i%`$H6(D4$7$FF0:n$9$k$?$a$NJ}K!$r(B
    $BDj5A$7$F$$$^$9!#$=$N%W%m%0%i%`$O$7$P$7$P(B CGI $B%W%m%0%i%`$d(B
    CGI $B%9%/%j%W%H$H8F$P$l$^$9!#(BCGI $B$O!"%&%'%V%5%$%H$KF0E*$J(B
    $B%3%s%F%s%D$rCV$/$?$a$N:G$b4JC1$G0lHLE*$JJ}K!$G$9!#$3$N%I%-%e%a%s%H$O!"(B
    Apache $B%&%'%V%5!<%P$G(B CGI $B$r@_Dj$7!"(B
    CGI $B%W%m%0%i%`$r=q$-;O$a$k$?$a$NF~Lg=q$H$J$k$G$7$g$&!#(B</p>
    <hr />

    <h2><a id="configuringapachetopermitcgi"
    name="configuringapachetopermitcgi">CGI $B$r5v2D$9$k$h$&$K(B
    Apache $B$r@_Dj$9$k(B</a></h2>

    <p>CGI $B%W%m%0%i%`$r@5$7$/F0:n$5$;$k$K$O!"(BCGI $B$r5v2D$9$k$h$&$K(B
    Apache $B$N@_Dj$r9T$&I,MW$,$"$j$^$9!#(B
    $B$3$l$r9T$J$&$?$a$NJ}K!$,$$$/$D$+$"$j$^$9!#(B</p>

    <h3><a id="scriptalias" name="scriptalias">ScriptAlias</a></h3>

    <p><code>ScriptAlias</code> $B%G%#%l%/%F%#%V$r;HMQ$7$F!"(B
    CGI $B%W%m%0%i%`MQ$NFCJL$JJL%G%#%l%/%H%j$r(B Apache $B$K@_Dj$7$^$9!#(B
    Apache $B$O!"$3$N%G%#%l%/%H%jCf$NA4$F$N%U%!%$%k$r(B CGI
    $B%W%m%0%i%`$G$"$k$H2>Dj$7$^$9!#(B
    $B$=$7$F!"$3$NFCJL$J%j%=!<%9$,%/%i%$%"%s%H$+$iMW5a$5$l$k$H!"(B
    $B$=$N%W%m%0%i%`$N<B9T$r;n$_$^$9!#(B</p>

    <p><code>ScriptAlias</code>
    $B%G%#%l%/%F%#%V$O0J2<$N$h$&$K;HMQ$7$^$9(B:</p>
<pre>
        ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/
</pre>

    <p>$B%G%U%)%k%H0LCV$K(B Apache $B$r%$%s%9%H!<%k$7$?$J$i$P!"(B
    $B$3$NNc$O%G%U%)%k%H>uBV$N(B <code>httpd.conf</code>
    $B@_Dj%U%!%$%k$K4^$^$l$F$$$^$9!#(B<code>ScriptAlias</code>
    $B%G%#%l%/%F%#%V$O!"(BURL $B$NA0$KIU2C$9$k%G%#%l%/%H%j$rDj5A$9$k(B
    <code>Alias</code> $B%G%#%l%/%F%#%V$H$+$J$j;w$F$$$^$9!#(B
    <code>Alias</code> $B$H(B <code>ScriptAlias</code> $B$ODL>o!"(B
    <code>DocumentRoot</code>
    $B%G%#%l%/%H%j30$N%G%#%l%/%H%j$N$?$a$K;HMQ$5$l$^$9!#(B
    <code>Alias</code> $B$H(B <code>ScriptAlias</code> $B$H$N:9$O!"(B
    <code>ScriptAlias</code> $B$,@\F,<-$G;O$^$k$9$Y$F$N(B URL $B$O(B
    CGI $B%W%m%0%i%`$H$_$J$5$l$k$H$$$&DI2C$N0UL#$r4^$s$G$$$k$3$H$G$9!#(B
    $B=>$C$F!">e5-$NNc$G$O!"(B<code>/cgi-bin/</code>
    $B$G;O$^$k%j%=!<%9$X$N$"$i$f$k%j%/%(%9%H$KBP$7$F!"%G%#%l%/%H%j(B
    <code>/usr/local/apache/cgi-bin/</code> $B$+$iDs6!$7!"$=$l$i$r(B
    CGI $B%W%m%0%i%`$H$7$F07$&$h$&(B Apache $B$K<($7$^$9!#(B</p>

    <p>$BNc$($P!"(BURL <code>http://dev.rcbowen.com/cgi-bin/test.pl</code>
    $B$,MW5a$5$l$?>l9g!"(BApache $B$O(B $B%U%!%$%k(B
    <code>/usr/local/apache/cgi-bin/test.pl</code>
    $B$r<B9T$7!"$=$N=PNO$rJV$9$3$H$r;n$_$^$9!#(B
    $B$b$A$m$s!"%U%!%$%k$,B8:_$7!"<B9T2DG=$G$"$j!"7h$a$i$l$?J}K!$G=PNO$rJV$7$^$9!#(B
    $B$=$&$G$J$1$l$P!"(BApache $B$O%(%i!<%a%C%;!<%8$rJV$7$^$9!#(B</p>

    <h3><a id="cgioutsideofscriptaliasdirectories"
    name="cgioutsideofscriptaliasdirectories">
    ScriptAlias $B%G%#%l%/%H%j30$N(B CGI</a></h3>

    <p>CGI $B%W%m%0%i%`$O!"%;%-%e%j%F%#>e$NM}M3$+$i(B <code>ScriptAlias</code>
    $B$5$l$?%G%#%l%/%H%j$K@)8B$5$l$k$3$H$,$7$P$7$P$"$j$^$9!#$3$NJ}K!$K$h$j!"(B
    CGI $B%W%m%0%i%`$r;HMQ$G$-$k%f!<%6$r4IM}<T$,87$7$/@)8f$9$k$3$H$,$G$-$^$9!#(B
    $B$7$+$7$J$,$i!"E,@Z$J%;%-%e%j%F%#;vA0BP:v$,$H$i$l$k$J$i$P!"(BCGI
    $B%W%m%0%i%`$rG$0U$N%G%#%l%/%H%j$G<B9T$G$-$J$$$h$&$K$9$kM}M3$O$"$j$^$;$s!#(B
    $BNc$($P!"%f!<%6$K(B <code>UserDir</code> $B%G%#%l%/%F%#%V$G(B
    $BH`$i$N%[!<%`%G%#%l%/%H%jG[2<$K%&%'%V%3%s%F%s%D$r;}$?$;$?$$$H$7$^$9!#(B
    $B$b$7!"H`$i$,(B CGI $B%W%m%0%i%`$r;}$D$3$H$rK>$s$G$$$F$b!"%a%$%s$N(B
    <code>cgi-bin</code> $B%G%#%l%/%H%j$X$N%"%/%;%9$,$G$-$J$$>l9g!"(B
    CGI $B%W%m%0%i%`$r<B9T$9$k$3$H$,$G$-$kB>$N>l=j$,I,MW$K$J$j$^$9!#(B</p>

    <h3><a id="explicitlyusingoptionstopermitcgiexecution"
    name="explicitlyusingoptionstopermitcgiexecution">
    CGI $B$N<B9T$r2DG=$K$9$k$?$a$K(B Options $B$rL@<(E*$K;HMQ$9$k(B</a></h3>

    <p>$B%5!<%P$N%a%$%s$N@_Dj%U%!%$%kCf$G(B <code>Options</code>
    $B%G%#%l%/%F%#%V$rL@<(E*$K;HMQ$9$k$3$H$G!"FCDj$N%G%#%l%/%H%jG[2<$G(B
    CGI $B$N<B9T$r5v2D$9$k$h$&$K;XDj$9$k$3$H$,$G$-$^$9(B:</p>
<pre>
        &lt;Directory /usr/local/apache/htdocs/somedir&gt;
                Options +ExecCGI
        &lt;/Directory&gt;
</pre>

    <p>$B>e5-%G%#%l%/%F%#%V$O!"(BCGI $B%U%!%$%k$N<B9T$r2DG=$K$9$k$h$&(B
    Apache $B$KEA$($^$9!#$^$?!"$I$N%U%!%$%k$,(B CGI $B%U%!%$%k$+$r(B
    $B%5!<%P$KEA$($kI,MW$,$"$j$^$9!#<!$N(B <code>AddHandler</code>
    $B%G%#%l%/%F%#%V$NNc$G$O!"(B<code>cgi</code> $B$^$?$O(B <code>pl</code>
    $B$r3HD%;R$K;}$D$9$Y$F$N%U%!%$%k$r(B CGI
    $B%W%m%0%i%`$H$7$F$_$J$9$3$H$r%5!<%P$KEA$($^$9(B:</p>
<pre>
     AddHandler cgi-script cgi pl
</pre>
    <h3><a id="htaccessfiles" name="htaccessfiles">.htaccess
    $B%U%!%$%k(B</a></h3>

    <p><code>.htaccess</code>
    $B%U%!%$%k$O!"%G%#%l%/%H%jKh$K%G%#%l%/%F%#%V$r;XDj$9$kJ}K!$G$9!#(B
    Apache $B$O!"%j%=!<%9$rDs6!$9$k$H$-$K!"(B
    $BDs6!$9$k%U%!%$%k$,CV$+$l$F$$$k%G%#%l%/%H%jCf$N(B <code>.htaccess</code>
    $B$H$$$&%U%!%$%k$r;2>H$7$^$9!#$=$N%U%!%$%k$rH/8+$7$?$i!"(B
    $B$=$NCf$GH/8+$5$l$?%G%#%l%/%F%#%V$,E,MQ$5$l$^$9!#(B
    <code>.htaccess</code> $B%U%!%$%k$O!"(B<code>AllowOverride</code>
    $B%G%#%l%/%F%#%V$N;XDj$K$h$j;H$($k$h$&$K$J$j$^$9!#(B
    <code>AllowOverride</code> $B%G%#%l%/%F%#%V$O!"(B<code>.htaccess</code>
    $B%U%!%$%k$G@_Dj$G$-$k%G%#%l%/%F%#%V$N%?%$%W$r;XDj$7$^$9!#(B
    <code>AllowOverride</code> $B%G%#%l%/%F%#%V$N;XDj$,$J$$>l9g!"(B
    $B$^$C$?$/;H$($^$;$s!#(BCGI $B$N<B9T$r5v2D$9$k$?$a$KI,MW$H$J$k(B
    $B%G%#%l%/%F%#%V$r;XDj2DG=$K$9$k$K$O!"(B
    $B0J2<$N@_Dj$,%5!<%P$N%a%$%s$N@_Dj$GI,MW$K$J$j$^$9(B:</p>
<pre>
        AllowOverride Options
</pre>
    <p><code>.htaccess</code>
    $B%U%!%$%k$G$O!"<!$N%G%#%l%/%F%#%V$,I,MW$H$J$j$^$9(B:</p>
<pre>
        Options +ExecCGI
</pre>
    <p>$B$3$N@_Dj$G$O!"$3$N%G%#%l%/%H%j$K$*$1$k(B CGI
    $B%W%m%0%i%`$N<B9T$r5v2D$9$k$h$&(B Apache $B$KEA$($^$9!#(B</p>
    <hr />

    <h2><a id="writingacgiprogram" name="writingacgiprogram">CGI
    $B%W%m%0%i%`$r=q$/(B</a></h2>

    <p>$BDL>o$N%W%m%0%i%_%s%0$H(B CGI
    $B%W%m%0%i%_%s%0$N4V$K$O<g$KFs$D$N0c$$$,$"$j$^$9!#(B</p>

    <p>$B0l$D$O!"(BCGI $B%W%m%0%i%`$N$9$Y$F$N=PNO$K$O(B MIME-type
    $B%X%C%@$rIU$1$J$1$l$P$J$j$^$;$s!#(B
    $B$3$l$O$I$N$h$&$J<oN`$N%3%s%F%s%D$r<u$1<h$C$F$$$k$+$r%/%i%$%"%s%H$K<($9(B
    HTTP $B%X%C%@$G$9!#$[$H$s$I$N>l9g$G$O!"<!$N$h$&$K=PNO$7$^$9(B:</p>
<pre>
        Content-type: text/html
</pre>

    <p>$B$b$&0l$D$O!"=PNO$r(B HTML
    $B$+!"%V%i%&%6$,I=<($9$k$3$H$,$G$-$k2?$+B>$N7A<0$K$9$kI,MW$,$"$j$^$9!#(B
    $BBgDq$N>l9g$O(B HTML $B$G$7$g$&$,!"(BGIF $B%$%a!<%8$dB>$NHs(B HTML
    $B%3%s%F%s%D$r=PNO$9$k(B CGI $B%W%m%0%i%`$r=q$/$3$H$b$"$k$G$7$g$&!#(B</p>

    <p>$B$3$l$iFsE@0J30$G$O!"(BCGI $B%W%m%0%i%`$r=q$/$3$H$O!"(B
    $B$"$J$?$,=q$$$F$$$kB>$N%W%m%0%i%`$HBg$$$K;w$F$$$k$G$7$g$&!#(B</p>

    <h3><a id="yourfirstcgiprogram"
    name="yourfirstcgiprogram">$B$"$J$?$N:G=i$N(B CGI $B%W%m%0%i%`(B</a></h3>

    <p>$B<!$K<($9$N$O!"%V%i%&%6$K(B 1 $B9T0u;z$9$k(B CGI
    $B%W%m%0%i%`$NNc$G$9!#0J2<$rF~NO$7!"(B<code>first.pl</code>
    $B$H$$$&%U%!%$%k$KJ]B8$7!"$=$l$r(B <code>cgi-bin</code>
    $B%G%#%l%/%H%j$KCV$$$F$/$@$5$$!#(B</p>
<pre>
        #!/usr/bin/perl
        print "Content-type: text/html\r\n\r\n";
        print "Hello, World.";
</pre>

    <p>Perl $B$K@:DL$7$F$$$J$/$F$b!"(B
    $B2?$,5/$3$k$+$rM}2r$9$k$3$H$O$G$-$k$O$:$G$9!#(B1 $B9TL\$O!"(B
    <code>/usr/bin/perl</code> $B$G8+$D$1$i$l$k%$%s%?%W%j%?$K(B
    $B$3$N%U%!%$%k$r6!5k$9$k$3$H$G$3$N%W%m%0%i%`$,<B9T$5$l$k$3$H$r(B
    Apache $B$K(B ($B%7%'%k>e$G<B9T$7$h$&$H$7$F$$$k$J$i$P!"$=$N%7%'%k$K(B ) 
    $B<($7$^$9!#(B2 $B9TL\$O!"A0=R$7$?$H$*$j(B content-type $B$NDj5A$r0u;z$7$^$9!#(B
    $B$3$l$K$OI|5"2~9T$NFs$D$NAH$r8e$KIU2C$7$^$9!#(B
    $B$3$l$K$h$j!"%X%C%@$N=*$j$K6u9T$,CV$+$l!"(BHTTP
    $B%X%C%@$N=*$j$H%\%G%#$N;O$^$j$r<($7$^$9!#(B3 $B9TL\$O!"(B``Hello, World.''
    $B$H$$$&J8;zNs$r0u;z$7!"$3$l$G=*$j$H$J$j$^$9!#(B</p>

    <p>$B9%$_$N%V%i%&%6$r3+$-!"%"%I%l%9(B</p>
<pre>
        http://www.example.com/cgi-bin/first.pl
</pre>

    <p>$B$"$k$$$O%U%!%$%k$rCV$$$?%m%1!<%7%g%s$r;XDj$9$k$H!"(B
    <code>Hello, World.</code>
    $B$H$$$&(B 1 $B9T$,%V%i%&%6%&%#%s%I$K8=$l$k$G$7$g$&!#(B
    $B$=$l$O$"$^$j%(%-%5%$%F%#%s%0$J$3$H$G$O$"$j$^$;$s!#(B
    $B$7$+$7!"$3$l$,$&$^$/F0$1$P!"(B
    $BB>$N$I$N$h$&$J$b$N$G$bF0$+$9$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B</p>
    <hr />

    <h2><a id="butitsstillnotworking"
    name="butitsstillnotworking">$B$7$+$7!"$^$@F0$+$J$$(B !</a></h2>

    <p>$B%&%'%V$+$i(B CGI $B%W%m%0%i%`$X$N%"%/%;%9$r9T$J$C$?$H$-!"(B
    $B%V%i%&%6$G8+$k2DG=@-$,$"$k;M$D$N4pK\E*$J$3$H$,$"$j$^$9(B:</p>

    <dl>
      <dt>CGI $B%W%m%0%i%`$N=PNO(B</dt>

      <dd>$BAG@2$i$7$$(B ! $B$=$l$O$9$Y$F$,$&$^$/F0$$$?$3$H$r0UL#$7$^$9!#(B<br />
      <br />
      </dd>

      <dt>CGI $B%W%m%0%i%`$N%=!<%9%3!<%I!"$^$?$O(B "POST Method Not Allowed"
      $B$H$$$&%a%C%;!<%8(B</dt> 

      <dd>$B$3$l$O!"(BCGI $B%W%m%0%i%`$r=hM}$G$-$k$h$&(B Apache
      $B$rE,@Z$K@_Dj$7$F$$$J$+$C$?$3$H$r0UL#$7$^$9!#(B<a
      href="#configuringapachetopermitcgi">$B!V(BCGI $B$r5v2D$9$k$h$&$K(B
      Apache $B$r@_Dj$9$k!W(B</a>$B$N>O$rFI$_D>$7!"(B
      $B$"$J$?$,2?$r4V0c$($?$+$rC5$7$F$_$F$/$@$5$$!#(B<br />
      <br />
      </dd>

      <dt>$B%a%C%;!<%8$,(B "Forbidden" $B$G;O$^$C$F$$$k(B</dt>

      <dd>$B$3$l$O%Q!<%_%C%7%g%s$NLdBj$H$$$&$3$H$r0UL#$7$^$9!#(B
      <a href="#errorlogs">Apache $B$N%(%i!<%m%0(B</a>$B$H!"8e=R$N(B<a
      href="#filepermissions">$B!V%U%!%$%k$N%Q!<%_%C%7%g%s!W(B</a>
      $B$N>O$r%A%'%C%/$7$F$/$@$5$$!#(B<br />
      <br />
      </dd>

      <dt>"Internal Server Error" $B$H$$$&%a%C%;!<%8(B</dt>

      <dd><a href="#errorlogs">Apache
      $B$N%(%i!<%m%0(B</a>$B$r%A%'%C%/$9$k$H!"(B"Premature end of script headers"
      $B$H$$$&%m%0$,5-O?$5$l$F$$$k$H;W$$$^$9!#$=$7$F!"$*$=$i$/(B CGI
      $B%W%m%0%i%`$K$h$C$F@8@.$5$l$?%(%i!<%a%C%;!<%8$b5-O?$5$l$F$$$k$G$7$g$&!#(B
      $B$3$N>l9g!"(BCGI $B%W%m%0%i%`$,E,@Z$J(B
      HTTP $B%X%C%@$r=PNO$G$-$J$$860x$rCN$k$?$a$K!"(B
      $B0J2<$N3F>O$G%A%'%C%/$7$F$_$F$/$@$5$$!#(B</dd>
    </dl>

    <h3><a id="filepermissions"
    name="filepermissions">$B%U%!%$%k$N%Q!<%_%C%7%g%s(B</a></h3>

    <p>$B%5!<%P$O$"$J$?$N8"8B$G<B9T$5$l$F$$$J$$$N$rK:$l$J$$$h$&$K!#(B
    $B$D$^$j!"5/F0$9$k$H$-!"%5!<%P$OFC8"$r$b$?$J$$%f!<%6(B - $BDL>o(B ``nobody''
    $B$d(B ``www'' $B$N8"8B$G<B9T$5$l$^$9!#$7$?$,$C$F!"$"$J$?$,=jM-$9$k(B
    $B%U%!%$%k$r<B9T$9$k$K$OJL$N%Q!<%_%C%7%g%s$,I,MW$H$J$j$^$9!#(B
    $BDL>o!"(B``nobody'' $B$,<B9T$9$k$N$K==J,$J%Q!<%_%C%7%g%s$rM?$($kJ}K!$O!"(B
    $B%U%!%$%k$KC/$G$b<B9T2DG=$H$9$k%Q!<%_%C%7%g%s$rM?$($k$3$H$G$9(B:</p>
<pre>
        chmod a+x first.pl
</pre>

    <p>$B$^$?!"$b$7$"$J$?$N%W%m%0%i%`$,B>$N%U%!%$%k$rFI$_=q$-$9$k$J$i$P!"(B
    $B$=$l$i$N%U%!%$%k$O!"$3$l$,2DG=$H$J$k@5$7$$%Q!<%_%C%7%g%s(B
    $B$r;}$C$F$$$kI,MW$,$"$j$^$9!#(B</p>

    <p>$B$3$l$KBP$9$kNc30$O!"%5!<%P$,(B <a href="../suexec.html">suexec</a>
    $B$r;HMQ$9$k$h$&@_Dj$5$l$F$$$k>l9g$G$9!#(Bsuexec $B$O!"(BCGI
    $B%W%m%0%i%`$,CV$+$l$F$$$k%P!<%A%c%k%[%9%H$^$?$O%f!<%6$N(B
    $B%[!<%`%G%#%l%/%H%j$K$h$C$F!"0[$J$k%f!<%68"8B$G<B9T$5$l$k$h$&$K$7$^$9!#(B
    suexec $B$O$H$F$b87$7$$%Q!<%_%C%7%g%s$N%A%'%C%/$,$"$j!"(B
    $B$=$N%A%'%C%/$rDL2a$G$-$J$$$H(B "Internal Server Error" $B$H$J$j!"$=$N(B
    CGI $B%W%m%0%i%`$N<B9T$O<:GT$7$^$9!#(B
    $B$3$N>l9g!"$I$N%;%-%e%j%F%#%A%'%C%/$,<:GT$7$F$$$k$N$+$rCN$k$?$a$K(B
    suexec $B%m%0%U%!%$%k$r%A%'%C%/$9$kI,MW$,$"$j$^$9!#(B</p>

    <h3><a id="pathinformation"
    name="pathinformation">$B%Q%9>pJs(B</a></h3>

    <p>$B%3%^%s%I%i%$%s$+$i%W%m%0%i%`$r<B9T$9$k$H$-!"(B
    $B0U<1$7$J$/$F$b%7%'%k$KEO$5$l$k>pJs$,$"$j$^$9!#(B
    $BNc$($P!";2>H$9$k%U%!%$%k$N$?$a$K$I$3$r8!:w$7$?$i$h$$$+$r(B
    $B%7%'%k$KEA$($k%Q%9$,$"$j$^$9!#(B</p>

    <p>$B%W%m%0%i%`$,(B CGI $B%W%m%0%i%`$H$7$F%&%'%V%5!<%P$K$h$C$F<B9T$5$l$k$H$-!"(B
    $B$=$l$O%Q%9$r;}$A$^$;$s!#(BCGI $B%W%m%0%i%`Fb$G8F$S=P$9$"$i$f$k%W%m%0%i%`(B
    ($BNc$($P!"(B'sendmail' $B$N$h$&$J$b$N(B) $B$O!"(B
    $B%U%k%Q%9$G;XDj$9$kI,MW$,$"$k$G$7$g$&!#$=$l$K$h$j!"(BCGI
    $B%W%m%0%i%`$r<B9T$7$h$&$H$7$?$H$-!"(B
    $B%7%'%k$O$=$N$h$&$J%W%m%0%i%`$r8+$D$1$k$3$H$,$G$-$^$9!#(B</p>

    <p>$BF1MM$J$3$H$O!"%9%/%j%W%H$N%$%s%?%W%j%?(B ($B$7$P$7$P(B <code>perl</code>)
    $B$X$N%Q%9$G!"(BCGI $B%W%m%0%i%`$N(B 1 $B9TL\$K<!$N$h$&$K<($5$l$^$9(B:</p>
<pre>
     #!/usr/bin/perl
</pre>

    <p>$B$3$l$,%$%s%?!<%W%j%?$X$N<B:]$N%Q%9$G$"$k$3$H$r3N<B$K$7$F$*$-$^$9!#(B
    </p>

    <h3><a id="syntaxerrors" name="syntaxerrors">$B9=J8%(%i!<(B</a></h3>


    <p>CGI
    $B%W%m%0%i%`$,<:GT$9$k$N$OBgDq!"%W%m%0%i%`<+?H$KLdBj$,$"$k>l9g$G$9!#(B
    $B0lEY(B CGI $B$N;H$$J}$rM}2r$7!"A0=R$NFs$D$N8m$j$rHH$7$F$$$J$$$J$i$P!"(B
    $B$^$:4V0c$$$J$/$=$&$G$7$g$&!#%V%i%&%6$rDL$7$F%F%9%H$r9T$&A0$KI,$:!"(B
    $B%3%^%s%I%i%$%s$+$i%W%m%0%i%`$N<B9T$r;n$7$J$5$$!#(B
    $B$3$l$K$h$j!"BgDq$NLdBj$,5/$3$i$J$/$J$j$^$9!#(B</p>

    <h3><a id="errorlogs" name="errorlogs">$B%(%i!<%m%0(B</a></h3>

    <p>$B%(%i!<%m%0$OM'C#$G$9!#(B
    $BA4$F$N$&$^$/$$$+$J$$$3$H$O!"%(%i!<%m%0$K%a%C%;!<%8$r@8@.$7$^$9!#(B
    $BI,$:$=$l$r:G=i$K8+$k$Y$-$G$9!#(B
    $B$b$7!"$"$J$?$,%&%'%V%5%$%H$r<g:E$7$F$$$k>l=j$,(B
    $B%(%i!<%m%0$N;2>H$r5v$7$F$$$J$$$J$i$P!"$-$C$HB>$N%5%$%H$G<g:E$9$k$Y$-$G$9!#(B
    $B%(%i!<%m%0$NFI$_J}$r3X$V$3$H$G!"$[$H$s$IA4$F$NLdBj$,?WB.$K3NG'$5$l!"(B
    $B?WB.$K2r7h$5$l$k$H$$$&$3$H$,J,$+$k$G$7$g$&!#(B</p>
    <hr />

    <h2><a id="whatsgoingonbehindthescenes"
    name="whatsgoingonbehindthescenes">$BN"$G2?$,5/$3$C$F$$$k$N$+(B?</a></h2>


    <p>CGI $B%W%m%0%i%_%s%0$K=OC#$9$k$H!"(B
    $BN"$G5/$3$C$F$$$k$3$H$K$D$$$F99$KM}2r$9$k$3$H$OM-1W$K$J$k$G$7$g$&!#(B
    $B%V%i%&%6$H%5!<%P$,$I$N$h$&$KAj8_DL?.$9$k$+$K$D$$$F$OFC$K$=$&$G$9!#(B
    $B$J$<$J$i!"(B``Hello, World.''
    $B$r0u;z$9$k%W%m%0%i%`$r=q$/$3$H$O$^$3$H$K7k9=$G$9$,!"(B
    $B$=$l$OFC$KM-1W$G$O$"$j$^$;$s!#(B</p>

    <h3><a id="environmentvariables"
    name="environmentvariables">$B4D6-JQ?t(B</a></h3>

    <p>$B4D6-JQ?t$O!"(B
    $B$"$J$?$,%3%s%T%e!<%?$r;H$&$H$-$KJU$j$KB8:_$7$F$$$kCM$G$9!#(B
    $B$=$l$i$O!"%Q%9(B
    ($B%3%^%s%I$r%?%$%W$7$?$H$-$K<B9T$9$k<B:]$N%U%!%$%k$rC5$7=P$9$H$3$m(B)$B!"(B
    $B%f!<%6L>!"C<Kv7?$J$I$N$h$&$JJXMx$J$b$N$G$9!#(B
    $BDL>o$N!"KhF|$N4D6-JQ?t$N40A4$J%j%9%H$rD4$Y$k$K$O!"%3%^%s%I%W%m%s%W%H$G(B
    <code>env</code> $B$rF~NO$7$^$9!#(B</p>

    <p>CGI $B$N=hM}Cf!"%5!<%P$H%V%i%&%6$b4D6-JQ?t$r@_Dj$7!"(B
    $B$=$l$K$h$jAj8_$KDL?.$9$k$3$H$,$G$-$k$h$&$K$J$j$^$9!#(B
    $B$=$N4D6-JQ?t$O!"%V%i%&%6%?%$%W(B (Netscape, IE, Lynx)$B!"%5!<%P%?%$%W(B
    (Apache, IIS, WebSite)$B!"<B9T$5$l$F$$$k(B CGI
    $B%W%m%0%i%`$NL>A0$J$I$N$h$&$J$b$N$G$9!#(B</p>

    <p>$B$3$l$i$NJQ?t$O(B CGI $B%W%m%0%i%^$,;HMQ$9$k$3$H$,$G$-$^$9!#(B
    $B$=$7$F!"$=$l$O%/%i%$%"%s%H$H%5!<%P$NDL?.$NOC$NH>J,$G$9!#(B
    $BI,MW$JJQ?t$N40A4$J%j%9%H$O(B <a
    href="http://hoohoo.ncsa.uiuc.edu/cgi/env.html"
    >http://hoohoo.ncsa.uiuc.edu/cgi/env.html</a> $B$K$"$j$^$9!#(B</p>

    <p>$B0J2<$NC1=c$J(B Perl CGI
    $B%W%m%0%i%`$O!"EO$5$l$kA4$F$N4D6-JQ?t$rI=<($7$^$9!#F1MM$N%W%m%0%i%`$O!"(B
    Apache $B%G%#%9%H%j%S%e!<%7%g%s$N(B <code>cgi-bin</code>
    $B%G%#%l%/%H%j$KFs$D4^$^$l$F$$$^$9!#(B
    $B$$$/$D$+$NJQ?t$,I,?\$G$"$j!"$$$/$D$+$OG$0U$G$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B
    $B$=$7$F!"8x<0$N%j%9%H$K$O$J$$$$$/$D$+$NJQ?t$,I=<($5$l$F$$$k$+$b$7$l$^$;$s!#(B
    $B$5$i$K!"(BApache $B$O%G%U%)%k%H$GMQ0U$5$l$F$$$k4pK\E*$J$b$N$K(B
    <a href="../env.html">$B$"$J$?<+?H$N4D6-JQ?t$r2C$($k(B</a>$B$?$a$N!"(B
    $BB?$/$N0[$J$kJ}K!$rMQ0U$7$F$7$^$9!#(B</p>
<pre>
     #!/usr/bin/perl
     print "Content-type: text/html\n\n";
     foreach $key (keys %ENV) {
          print "$key --&gt; $ENV{$key}&lt;br&gt;";
     }
</pre>

    <h3><a id="stdinandstdout"
    name="stdinandstdout">STDIN $B$H(B STDOUT</a></h3>

    <p>$B%5!<%P$H%/%i%$%"%s%H4V$N$b$&0l$D$NDL?.$O!"I8=`F~NO(B
    (<code>STDIN</code>)$B$HI8=`=PNO(B (<code>STDOUT</code>)
    $B$rDL$8$F9T$J$o$l$^$9!#DL>o$NJ8L.$K$*$$$F!"(B<code>STDIN</code>
    $B$O%-!<%\!<%I$d%W%m%0%i%`$,F0:n$9$k$?$a$KM?$($i$l$k%U%!%$%k$r0UL#$7!"(B
    <code>STDOUT</code> $B$ODL>o%3%s%=!<%k$^$?$O%9%/%j!<%s$r0UL#$7$^$9!#(B</p>

    <p>$B%&%'%V%U%)!<%`$+$i(B CGI $B%W%m%0%i%`$X(B<code>POST</code>
    $B$7$?$H$-!"%U%)!<%`$N%G!<%?$OFCJL$J%U%)!<%^%C%H$GB+$M$i$l!"(B
    <code>STDIN</code> $B$rDL$7$F!"(BCGI $B%W%m%0%i%`$K0z$-EO$5$l$^$9!#(B
    $B%W%m%0%i%`$O%G!<%?$,%-!<%\!<%I(B
    $B$b$7$/$O%U%!%$%k$+$iMh$F$$$?$+$N$h$&$K=hM}$9$k$3$H$,$G$-$^$9!#(B
    </p>

    <p>$B!VFCJL$J%U%)!<%^%C%H!W$O$H$F$bC1=c$G$9!#%U%#!<%k%IL>$HCM$O%$%3!<%k(B
    (=) $B$G7k$P$l$^$9!#$=$7$FCM$NAH$O%"%s%Q%5%s%I(B (&amp;) $B$G7k$P$l$^$9!#(B
    $B%9%Z!<%9!"%"%s%Q%5%s%I!"%$%3!<%k$N$h$&$JLLE]$JJ8;z$O!"(B
    $B$=$l$i$,F0:n$rBLL\$K$7$J$$$h$&$K$=$NJ8;z$KAjEv$9$k(B 16 $B?J$KJQ49$5$l$^$9!#(B
    $BA4%G!<%?J8;zNs$O!"0J2<$N$h$&$K$J$j$^$9(B:
    </p>
<pre>
     name=Rich%20Bowen&amp;city=Lexington&amp;state=KY&amp;sidekick=Squirrel%20Monkey
</pre>

    <p>$B;~!9!"$3$N$h$&$JJ8;zNs$,(B URL
    $B$KIU2C$5$l$k$N$r8+$k$G$7$g$&!#$=$N>l9g!"%5!<%P$O(B
    <code>QUERY_STRING</code> $B$H$$$&4D6-JQ?t$K$=$NJ8;zNs$rF~$l$^$9!#$=$l$O(B
    <code>GET</code> $B%j%/%(%9%H$H8F$P$l$^$9!#(B
    HTML $B%U%)!<%`$G$O!"%G!<%?$rEO$9$?$a$K(B <code>GET</code> $B$H(B
    <code>POST</code> $B$N$I$A$i$r;HMQ$9$k$+$r!"(B<code>FORM</code> $B%?%0$N(B
    <code>METHOD</code> $BB0@-$N@_Dj$G;XDj$7$^$9!#(B</p>

    <p>CGI $B%W%m%0%i%`$O!"$=$NJ8;zNs$rLr$KN)$D>pJs$KJ,3d$9$k@UG$$,$"$j$^$9!#(B
    $B9,$$$K$b!"$=$N%G!<%?=hM}$r=u$1$k%i%$%V%i%j$d%b%8%e!<%k$,B8:_$7$^$9!#(B
    $B$3$l$i$O!"(BCGI $B%W%m%0%i%`$NB>$NLL$G$bF1MM$KLr$KN)$A$^$9!#(B</p>
    <hr />

    <h2><a id="cgimoduleslibraries" name="cgimoduleslibraries">CGI
    $B%b%8%e!<%k(B/$B%i%$%V%i%j(B</a></h2>

    <p>CGI $B%W%m%0%i%`$r=q$/$H$-!"LLE]$J;E;v$NBgItJ,$r$7$F$/$l$k(B
    $B%3!<%I%i%$%V%i%j$^$?$O%b%8%e!<%k$r;H$&$3$H$r8!F$$9$Y$-$G$9!#(B
    $B$3$l$O%(%i!<$r8:$i$7!"Aa$$3+H/$K$D$J$,$j$^$9!#(B</p>

    <p>Perl $B$G(B CGI $B%W%m%0%i%`$r=q$$$F$$$k$J$i!"%b%8%e!<%k$O(B <a
    href="http://www.cpan.org/">CPAN</a> $B$GDs6!$5$l$F$$$^$9!#(B
    $B$3$NL\E*$N$?$a$N:G$bIa5Z$7$F$$$k%b%8%e!<%k$O(B CGI.pm $B$G$9!#(B
    CGI::Lite $B$b8!F$$7$^$7$g$&!#$3$l$O!"$[$H$s$I$N%W%m%0%i%`(B
    $B$K$*$$$FI,MW$H$9$k$9$Y$F$N5!G=$N:G>.%;%C%H$N<BAu$G$9!#(B</p>

    <p>C $B$G(B CGI $B%W%m%0%i%`$r=q$$$F$$$k$J$i!"$$$m$$$m$J(B
    $B%*%W%7%g%s$,$"$j$^$9!#$3$l$i$NFb$N0l$D$O(B <a
    href="http://www.boutell.com/cgic/">http://www.boutell.com/cgic/</a>
    $B$GDs6!$5$l$F$$$k(B CGIC $B%i%$%V%i%j$G$9!#(B</p>
    <hr />

    <h2><a id="formoreinformation"
    name="formoreinformation">$B99$J$k>pJs(B</a></h2>

    <p>CGI $B$K4X$9$k>pJs$O%&%'%V$G?tB?$/Ds6!$5$l$F$$$^$9!#(BCGI
    $B$NLdBj$K$D$$$F$O(B Usenet $B$N(B comp.infosystems.www.authoring.cgi
    $B$G!"B>$N%f!<%6$HO@5D$9$k$3$H$,$G$-$^$9!#(BHTML Writers Guide $B$N(B
    -servers $B%a!<%j%s%0%j%9%H$O!"$"$J$?$N<ALd$K2sEz$7$F$/$l$k0NBg$J%j%=!<%9$G$9!#(B
    <a href="http://www.hwg.org/lists/hwg-servers/"
    >http://www.hwg.org/lists/hwg-servers/</a>
    $B$G99$KB?$/$rC5$7=P$9$3$H$,$G$-$^$9!#(B</p>

    <p>$B$=$7$F$b$A$m$s!"$*$=$i$/(B CGI
    $B%W%m%0%i%`$NF0:n$K4X$9$k>\:Y$NA4$F$,5-=R$5$l$F$$$k(B
    CGI $B$N;EMM$rFI$`$Y$-$G$9!#%*%j%8%J%k%P!<%8%g%s$r(B
    <a href="http://hoohoo.ncsa.uiuc.edu/cgi/interface.html">NCSA</a>
    $B$G!"%"%C%W%G!<%H$5$l$?%I%i%U%H$r(B
    <a href="http://web.golux.com/coar/cgi/">Common Gateway Interface RFC
    $B%W%m%8%'%/%H(B</a>$B$G;2>H$9$k$3$H$,$G$-$^$9!#(B</p>

    <p>CGI $B$NLdBj$K$D$$$F!"2C$o$C$F$$$k%a!<%j%s%0%j%9%H$^$?$O%K%e!<%9(B
    $B%0%k!<%W$K<ALd$rAw$k$H$-!"5/$3$C$?$b$N!"5/$3$C$F$[$7$$$3$H!"(B
    $B<B:]$K5/$3$C$?$3$H$,$I$&0c$&$+!";HMQ$7$F$$$k%5!<%P!"(B
    CGI $B%W%m%0%i%`$r5-=R$7$F$$$k8@8l$K4X$9$k==J,$J>pJs$H!"(B
    $B2DG=$G$"$l$PLdBj$N%3!<%I$rDs6!$9$k$h$&$K$7$F$/$@$5$$!#(B
    $B$=$&$9$k$3$H$G!"LdBj$,$h$j4VC1$K8+$D$+$k$h$&$K$J$j$^$9!#(B</p>

    <p>Apache
     $B$N%=!<%9%3!<%I$K$*$$$FLdBj$rH/8+$7$?$3$H$r3N?.$7$F$$$J$$8B$j!"(B
    CGI $B$NLdBj$K4X$9$k<ALd$r(B Apache
    $B%P%0%G!<%?%Y!<%9$KAw$k$Y$-$G$J$$$3$H$KCmL\$7$F$/$@$5$$!#(B</p>
    <!--#include virtual="footer.html" -->
  </body>
</html>