刚刚使用 Python 2.4.3 在 CentOS 5 (Apache 2.2.3) 服务器上安装和配置 mod_python 3.2.8。Apache 可以很好地加载它。
我激活了 mpinfo 测试页面,它可以工作。所以我用下面的代码写了一个简单的“Hello World”:
from mod_python import apache
def handler(req):
req.content_type = 'text/plain'
req.write("Hello World!")
req.flush()
return apache.OK
它输出一个空白页,没有文本,也没有来源。如果我有意识地创建一个语法错误,我会在 URL 上得到错误输出,例如(当我在“def”之前放置一个空格时):
Mod_python error: "PythonHandler mod_python.cgihandler"
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/cgihandler.py", line 96, in handler
imp.load_module(module_name, fd, path, desc)
File "/var/www/vhosts/localhost/httpdocs/mptest.py", line 3
def handler(req):
^
SyntaxError: invalid syntax
我花了大约五个小时浏览不同的教程、常见问题解答和故障排除指南,但找不到这个 exakt 问题的描述。
您认为可能是什么问题/原因?
编辑:这是该站点的 Apache 配置...
<Directory />
Options FollowSymLinks
AllowOverride None
AddHandler mod_python .py
PythonHandler mptest
PythonDebug On
</Directory>
编辑 2:啊,我忘了提到的另一件事是我打算使用 mod_python 来编写 Apache 扩展。应用程序本身是用 PHP 编写的,但我需要在服务器上进行一些安全性 tweeks :)