私はPythonスクリプトを持っています。プロンプトから同じことを実行できます:
python myscript.py
Python スクリプトは MySQL に接続し、いくつかの値を取得/計算して出力します。
しかし、Apache経由で同じものを実行すると:
Via Browser request
OR
curl "http://box.com/script/myscript.py"
Apache ログに以下のエラーが表示されます。
[Tue Jun 12 03:31:57 2012] [error] [client xx.xx.xx.xx] Exception AttributeError: "Data instance has no attribute 'cursor'" in <bound method Data.__del__ of <__main__.Data instance at 0x160f4c20>> ignored
cgitb の状態を介してログに記録します。
Traceback (most recent call last):
File "cgi-bin/myscript.py", line 114, in <module>
Data = Data()
File "cgi-bin/myscript.py", line 14, in __init__
self.conn = MySQLdb.connect(host="host",user="",passwd="",db="test")
AttributeError: 'module' object has no attribute 'connect'
ボックスに複数の Python がインストールされていますが、どのように、どの構成を設定すればよいのでしょうか? 最大の問題は、どうしてコマンド ラインからスクリプトを実行できるのかということです。
スクリプトは単にバックエンドに接続し、テーブルから値を取得します。