mod-python を apache2 で動作させようとしていますが、成功していません。mod-python を動作させるためのいくつかのチュートリアルに従いましたが、何が間違っているのかわかりません。
http://site.example.com/cgi-bin/test.pyにアクセスすると、実際に 404 ページが表示されます! (一方、ファイルが実際に存在しない場合は 403 禁止されます)
これが私のセットアップです:
/etc/apache2/sites-enabled/ には、各ドメインにちなんで名付けられた構成ファイルがあります。site.example.com ファイルで、これをユーザー ディレクティブ セクションに追加しました。
# Begin user directives <--
<Directory /home/default/site.example.com/user/htdocs/cgi-bin/>
Options Indexes FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
allow from all
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
</Directory>
# --> End user directives
次の行を含む完全なファイルはこちらです。
test.pyの内容を追加するための編集:
#!/usr/bin/python
print "Content-type: text/html"
print
print 'hello world'
#print 1/0
上記のように、404 /python/test.py was not found on this server
.
しかし、最後の行のコメントを外すと、次のようになります。
Mod_python error: "PythonHandler mod_python.publisher"
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 299, in HandlerDispatch
result = object(req)
File "/usr/lib/python2.4/site-packages/mod_python/publisher.py", line 98, in handler
path=[path])
File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 457, in import_module
module = imp.load_module(mname, f, p, d)
File "/home/default/site.example.co.uk/user/htdocs/python/test.py", line 5, in ?
print 1/0
ZeroDivisionError: integer division or modulo by zero
このトレースバックは正しく見えますか? ちなみに、cgitb を有効にしても効果はありません。
これを診断するために追加できる他の情報はありますか?