何らかの理由で、python cgi スクリプトでセミコロンを使用する必要があります。また、if ステートメントの通常の構文も認識しません。
たとえば、これは機能します:
#! /usr/bin/python
print "Content-type: text/html\n\n";
print "<html>Hello World!</html>";
しかし、これは機能しません:
#! /usr/bin/python
print "Content-type: text/html\n\n"
print "<html>Hello World!</html>"
これは機能しません:
#! /usr/bin/python
print "Content-type: text/html\n\n";
if True:
print "<html>Hello World!</html>";
最後の 2 つの例から 500 内部サーバー エラーが発生しました。私のApacheエラーログには、ファイルに構文の問題があると書かれています。私はApache2でこれを実行しているOSXを使用しています。どんな助けでも大歓迎です!
編集:明らかに、これは python スクリプトとして処理されていません。私は問題を見つけたかもしれませんが、それを修正する方法がわかりません.httpd.confの最後に次の行が追加されており、それらが問題だと思います:
<Location /cgi-bin>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options ExecCGI
PerlSendHeader On
Order allow,deny
Allow from all
</Location>
私の cgi-bin にある他のいくつかの cgi スクリプトを mod_perl で実行するために、これらの行があります。これを変更する必要がある場合、perl cgi ファイルは引き続き mod_perl の下で実行されますが、python cgi ファイルは python として実行されるようにするにはどうすればよいですか? わかりやすくするために、または問題が発生した場合に備えて、私の cgi-bin 内の perl ファイルには .cgi ファイル拡張子が付いていますが、動作させようとしている python cgi ファイルには .py ファイル拡張子が付いています。