1

EC2 インスタンスの html フォルダーから .py ファイルを実行しようとしています。

Python 2.6.8 をインストールし、/var/www/html ディレクトリ内の cgi .py ファイルを認識して実行できるように httpd.conf を構成しました。

テスト用の index.py ファイルには、次のスクリプトが含まれています。

#!/usr/bin/python

# enable debugging
import cgitb
cgitb.enable()

print "Content-Type: text/plain\r\n\r\n"
print "Hello World!"

mywebsite.com/index.py を実行するたびに、ブラウザーは内部サーバー エラーがあると表示します。httpd error_log から、次の情報が得られます。

[Sun Sep 09 21:52:46 2012] [error] (2)No such file or directory: exec of '/var/www/html/index.py' failed
[Sun Sep 09 21:52:46 2012] [error] Premature end of script headers: index.py

私が考えているのは、 #!/usr/bin/python がスクリプトを実行するための python を見つけていないということです。そこで、コンソールに次のように入力しました。

ls -l -F /usr/bin/python*

そして、それは私に次のことを与えます:

lrwxrwxrwx 1 root root    9 Sep  7 18:31 /usr/bin/python -> python2.6*
lrwxrwxrwx 1 root root    9 Sep  7 18:31 /usr/bin/python2 -> python2.6*
-rwxr-xr-x 2 root root 3536 Jun 29 06:51 /usr/bin/python26*
-rwxr-xr-x 2 root root 3536 Jun 29 06:51 /usr/bin/python2.6*
-rwxr-xr-x 1 root root 1418 Jun 29 06:51 /usr/bin/python2.6-config*

したがって、技術的には、リクエストは機能するはずです。私は何が欠けていますか?

注: .py ファイルは実行可能になるように chmod されており、(当面の間) 777 アクセスできることに注意してください。

編集: WSGI をインストールしましたが、実行中かどうかわかりません。また、 whereis python と入力したところ、次の結果が得られました。

python: /usr/bin/python2.6-config /usr/bin/python /usr/bin/python2.6 /usr/lib/python2.6 /usr/include/python2.6
4

1 に答える 1

0

Apache を介して Python プログラムを実行するためのベスト プラクティスは、WSGI を使用することです。

適切なバージョンは次のとおりです: http://code.google.com/p/modwsgi/

すべてを使用するための設定方法を理解できるクイック スタート ガイド: インストール - http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide 設定 - http://code.google.com/p /modwsgi/wiki/QuickConfigurationGuide

これら 2 つのドキュメントの間に、mod_wsgi を介して Python アプリケーションを構成および実行するために必要なすべてが含まれているはずです。mod_wsgi を Apache にロードしたら、特にhttp://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide#WSGI_Application_Script_Filehttp://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide#Mounting_The_WSGI_Applicationに注意してください。 .

CGI を使用しないことを推奨するいくつかの理由については、こちらで詳しく説明しています: http://docs.python.org/howto/webservers.html#common-gateway-interface

于 2012-09-09T23:05:49.660 に答える