我似乎无法让python模块cgitb在浏览器中输出堆栈跟踪。我在shell环境中没有问题。我用python 2.6运行Centos 6。
以下是我正在使用的示例简单代码:
import cgitb; cgitb.enable()
print "Content-type: text/html"
print
print 1/0
我收到内部服务器错误而不是打印的详细报告。我尝试过不同的错误类型,不同的浏览器等。
当我没有错误时,当然python工作正常。它将在shell中打印错误。 cgitb的要点是打印错误,而不是在浏览器中返回“内部服务器错误”以查找大多数错误异常。基本上我只是想让cgitb在浏览器环境中工作。
任何建议?
答案 0 :(得分:2)
好的,我解决了我的问题并且OP把我带到了它:即使cgitb默认会输出HTML,它也不会输出标题! Apache不喜欢这样,可能会给你一些愚蠢的错误,如:
<...blablabla>: Response header name '<!--' contains invalid characters, aborting request
它表明,当Apache遇到一些HTML时,它仍然在通过标题工作。查看在触发错误之前OP打印的内容。这是一个标题,你需要它。包括空行。
答案 1 :(得分:-1)
我将引用docs:
确保您的脚本可由“其他人”阅读并执行; Unix文件模式应为
0755
八进制(使用chmod 0755 filename
)。确保脚本的第一行包含{1}},从第1列开始,后跟Python解释器的路径名,例如:
#!