|
|
ネットワーク No. 60 WebサーバーApache1.3.9-6でCGIを動作させるときの注意点
TurboLinux Server6.0(SOHO版を含む)で構築したWebサーバー
Apache1.3.9-6を使用して、CGIスクリプトがうまく動作しない場合の
確認事項についていくつかチェックポイントを紹介いたします。
また、TurboLinuxServer6.0(SOHO版含む)に含まれている
Apache1.3.9-5では、正常に動作しないことが判明しておりますので、
Apache1.3.12以降にアップグレードしてください。
(1) httpdの設定
デフォルトインストールでは、以下に示す設定はすでにされておりますので、
特にconfファイルの編集をしていない場合は、読み飛ばしてかまいません。
/etc/httpd/conf/srm.conf
の中のScriptAlias行が以下の行のように設定されていることを確認
してください。CGIスクリプトを置くディレクトリについて、クライアント
から示すディレクトリと、実ディレクトリの対応を適切に記述する必要が
あります。
ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"
次に、
/etc/httpd/conf/access.conf
の中に、以下のような記述があることを確認してください。
<Directory "/home/httpd/cgi-bin">
AllowOverride None
Options ExecCGI
</Directory>
上記の設定では、/home/httpd/cgi-binディレクトリに対して
CGIスクリプトを実行できるようにするもので、逆に言えばこのディレクトリ
以外にCGIスクリプトを置く場合は、そのディレクトリにCGI実行許可を
与える必要があります。(ExecCGIというのがCGI実行許可です)
たとえば、test.cgiというスクリプトを/home/httpd/cgi-binに
おいてそれを実行する場合は、クライアント(Webブラウザ)から
例) http://www.yourhostname/cgi-bin/sample.cgi
のように指定することで実行されます。
※httpdの設定を変更したらhttpdサービスを再起動してください。
(2) CGIスクリプトのパーミッション(permission)設定
CGIスクリプトは正しく実行可能なpermission設定になっている
必要があります。もし、実行可能になっていなかった場合は
# chmod uog+x sample.cgi
のようにして実行可能に設定してください。
(3) CGIスクリプトそのもののバグ
一般的なCGIスクリプト記述の注意点としまして、perlスクリプト
実行時のエラーがないかについて、CGIスクリプトそのものをkterm
などのターミナル上で実行してみてください。perlスクリプトは実行
時にコンパイルが行われ、何かエラーがあれば、エラーメッセージが表示
されます。
簡単なサンプルCGIスクリプトを以下に示します。
[以下 Sample CGI Script (/home/httpd/cgi-bin/sample.cgi)]
#!/usr/bin/perl --
print "Content-type: text/html\n\n";
print "<HTML>\n<BODY>\n<TITLE>CGI Script TEST</TITLE>\n</BODY>\n";
print "The CGI script was worked!\n</HTML>\n";
[以上]
1行目について、必ずperlのある場所を"#!"の後にフルパスで指定
してください。"--"についてはつけてもつけなくてもかまいません。
最初の出力について、"Content-type: text/html\n\n"と
なっていますが、これはブラウザに対してHTMLテキストを表示するように指定
するものです。そして、必ず"\n\n"のように改行を2つ入れてください。
その後にHTMLの記述を行います。これをktermで実行すると
# ./sample.cgi
Content-type: text/html
<HTML>
<BODY>
<TITLE>CGI Script TEST</TITLE>
</BODY>
The CGI script was worked!
</HTML>
#
のようにターミナル上にHTMLが表示されます。ブラウザからは
例) http://www.yourhostname/cgi-bin/sample.cgi
とURLを指定することで "The CGI script was worked!"
というメッセージが表示されます。
apache CGI httpd Script conf srm ExecCGI 関連文書 対象製品
Last modified : Thu Oct 06 JST 2005 # 2
|
Copyright © Turbolinux, Inc..All Right Reserved.

