gpt4 book ai didi

apache2 - mod_python 与 apache2,(重新)导入模块错误

转载 作者:行者123 更新时间:2023-12-02 15:40:11 25 4
gpt4 key购买 nike

我正在尝试让 mod-python 与 apache2 一起使用,但没有成功。我已经遵循了一些让 mod-python 工作的教程,但我看不出我做错了什么。

当我访问http://site.example.com/cgi-bin/test.py时我真的得到了我的 404 页面! (如果文件确实不存在,我会收到 403 禁止)

这是我的设置:

在/etc/apache2/sites-enabled/中有以我的每个域命名的配置文件。在 the site.example.com file我已将其添加到用户指令部分:

# 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

完整文件here ,其中包括行:

编辑以添加 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 没有任何效果。

我可以添加任何其他信息来帮助诊断此问题吗?

最佳答案

据我所知,Publisher 处理程序需要接受请求对象和方法才能返回响应。

在我的脚本中,我有这样的内容:

#!/usr/bin/python  
def run(req):
return 'Hello world!'

然后,转到http://.../python/test.py/run

在本例中,req 是发布者处理程序传入的请求对象。

而且,如果您还没有,则需要在 test.py 所在的同一目录中拥有一个 __init__.py 文件。

此外,对于发布者,我注意到有时响应会被缓存。我将在浏览器中看到我已经修复的相同错误。因此,如果您看到一个您认为已经修复的错误,重新启动 apache 并不是一个坏主意。

关于apache2 - mod_python 与 apache2,(重新)导入模块错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/705992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com