-1

最近、Ubuntu PC を (12.04 に) 再インストールし、Apache を再セットアップする必要がありました。
local.domain.com は localhost (仮想ホスト) を指します。
http://local.domain.com/script.py?query=string
script.py は 755 に chmod されています。
私の .htaccess には次のものがあります。

Options +ExecCGI
AddHandler cgi-script .py

しかし、500: Internal Server Errorが表示されます。
cat /var/log/apache2/error.domain.com.logには何も表示されません。
コマンドラインで python script.py を実行すると、次のようになります。


<!-- The above is a description of an error in a Python program, formatted
     for a Web browser because the 'cgitb' module was enabled.  In case you
     are not reading this in a Web browser, here is the original traceback:

Traceback (most recent call last):
  File "script.py", line 32, in <module>
    queryHash = hashlib.sha224(os.environ['QUERY_STRING']).hexdigest()
  File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'QUERY_STRING'

-->

したがって、pyスクリプトに問題はありません。以前は機能していました。しかし、何らかの理由でブラウザで実行されません。他に何を見逃したでしょうか?

4

2 に答える 2

1

エラーは目の前にあります:

Traceback (most recent call last):
  File "script.py", line 32, in <module>
    queryHash = hashlib.sha224(os.environ['QUERY_STRING']).hexdigest()
  File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'QUERY_STRING'

これは、 key にアクセスできないと言っていますQUERY_STRING。エラーが発生した正確なコード行も表示されます。

File "script.py", line 32
queryHash = hashlib.sha224(os.environ['QUERY_STRING']).hexdigest()

環境変数QUERY_STRINGが apache ユーザーに設定されていません。以前はどのようにこのセットを持っていましたか? httpd プロファイルで設定する必要があるかもしれませんが、Ubuntu の場合、それがどこにあるのかわかりません。

于 2012-06-30T08:44:48.930 に答える
0

Ubuntu 12.04 には python 2.7 があります。私のスクリプトのシバン行は次のとおりです。

#!/usr/bin/env python2.6
于 2012-06-30T09:27:26.313 に答える