1

何らかの理由で、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 ファイル拡張子が付いています。

4

1 に答える 1