私は、同僚がCGIスクリプトを実行できるように自分のMacでテスト設定を手伝ってもらうのを手伝っています。私はLinuxの人で、彼はサーバーの人ではないので、私たちの間では、最も基本的なセットアップを動作させるのに問題があります。ここでは、これまでに何をやったかです:MacOS + apache、CGIスクリプトでエラーが発生する
有効/インストールのapache:
sudo apachectl start
ファイルを編集し/etc/apache2/httpd.conf
とのコメントを解除し、この行:同じファイルで
#AddHandler cgi-script .cgi
、始まる行を編集しますOptions
で、+ExecCGI
をオプションのリストに追加します。
サンプルperl CGIスクリプトtest.cgiを/Library/WebServer/CGI-Executables
にインストールし、実行可能にします。ソースコードは:
#!/opt/local/bin/perl
print "Content-Type: text/html\n\n";
print "<html> <head>\n";
print "<title>Hello, world!</title>";
print "</head>\n";
print "<body>\n";
print "<h1>Hello, world!</h1>\n";
print "</body> </html>\n";
我々はURL http://localhost/cgi-bin/test.cgi
に行く、結果は意味HTTPエラーコード304であり、「変更されません。」これは私には分かりません。通常はキャッシングと関連があるようですが、それは単に私たちの状況には関係していないようです。
Apacheのエラーログには何も表示されません。 + ExecCGIオプションを追加する前に、ブラウザにスクリプトのソースコードが表示されるため、Apacheがスクリプトを検出していることがわかりました。私たちは、すべてが世界的に読めるし、実行したことを確認して、権限を持つ問題をチェックしてみました:
ls -ld /Library/WebServer/CGI-Executables
drwxr-xr-x 7 root wheel 238 Sep 2 13:58 /Library/WebServer/CGI-Executables
ls -l /Library/WebServer/CGI-Executables/test.cgi
-rwxr-xr-x 1 root wheel 343 Sep 2 13:58 /Library/WebServer/CGI-Executables/test.cgi
スクリプトの所有者とグループは思われる、スクリプトが住んでいるディレクトリのものと同じです合理的。
何が間違っているのか、それを修正する方法については、誰でも提案できますか?
あなたが/ '/ライブラリ/ WebServer/CGI-実行可能ファイルを呼び出すことができますtest.cgi'(そのような)シェルから? URLにGETパラメータを追加するとどうなりますか? 'http://localhost/cgi-bin/test.cgi?test'? –
一部のコマンドラインクライアントから完全な逐語応答ヘッダーを投稿することはできますか? – covener