我有一个Python CGI webapp,它不起作用,我不知道如何开始缩小问题范围。我该怎么办?
注意即可。 我非常感谢this same question for Perl的答案,我希望我有一个用于Python的答案。有些东西相似,但大多数都不一样。这是我提出问题的模板,所以如果您觉得应该提出不同的问题,请随时修改。
答案 0 :(得分:3)
检查服务器的错误日志。例如,在Apache上,路径可以是/var/log/apache/error.log
或/var/log/httpd/error_log
。
确保您的脚本可执行(chmod +x script.py
)。
确保您的脚本有一个she-bang行(#!/usr/bin/env python
)。
某些配置只允许CGI脚本在/cgi-bin/
目录中执行,您可以通过查看服务器的配置进行确认,或者只是尝试将脚本移动到该目录中。目录
尝试从命令行(./script.py
)运行脚本。它应该打印并成功退出(如果脚本依赖于它们,您可能需要设置一些CGI环境变量)。
使用只打印"Content-Type: text/plain\n\nHello world"
的最小脚本替换脚本。这应该告诉你CGI是否在服务器上运行。
将import cgitb; cgitb.enable()
放在文件的顶部(shebang行下面的第一行)以捕获任何错误并向您显示回溯。您应该在解决问题后将其关闭,因为公开此信息可能存在安全风险。
如果您无法访问日志,则需要向服务器管理员寻求帮助,提交支持服务单等。如果您发布了什么网页,它也会有所帮助您正在运行的服务器,Web服务器配置的内容,哪个python版本,您的CGI脚本的外观等等。