我试图让 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 没有任何效果。
我可以添加任何其他信息来帮助诊断吗?