我有在我的本地 Apache 2.2.22 服务器上完美运行的 python CGI 脚本。它输出正确的结果等等。但是当我尝试在虚拟主机上执行它时,出现错误 500。我真的不知道为什么它不起作用。
Apache 错误日志如下所示:
[Wed Jul 12 16:06:54 2013] [error] [client 89.223.235.12] Premature end of script headers: /home/u67442/rrrrr.com/cgi-bin/test.py
[Wed Jul 12 16:09:31 2013] [error] [client 89.223.235.12] Premature end of script headers: /home/u67442/rrrrr.com/cgi-bin/test.py
我已经尝试过以下事情:
- 我确定解释器的路径是正确的 -
#!/usr/local/bin/python
。另一个 CGI 脚本适用于此路径。 - 我已将 chmod 755 设置为此脚本。
- 我已经以 UNIX 格式设置了行尾字符。
- 我使用正确的 HTTP 标头:
print "Content-type:text/html\n\n"
脚本的输出部分:
print "Content-type:text/html\n\n"
print "<html>"
print "<head>"
print "<title>Results</title>"
print "<head><h2 align=center>Results</h2></head>"
print "</head>"
print '<body bgcolor="#e8f3d8">'
print "<hr>"
print "<b>Result = %s </b>" % str(round(total_sum, 5))
print "</body>"
print "</html>"
有趣的是,另一个非常相似的脚本具有相同的路径、标题、EOL、输出等,在本地服务器和虚拟主机上运行完美。很奇怪,这个脚本在我的本地 apache 上运行良好,但在虚拟 Web 托管上它会因 500 内部服务器错误而崩溃。我真的不知道该怎么办。在技术支持中说我的脚本有问题。
只有一个想法 - 等待输出的超时。我的脚本中的数据处理大约需要 15-25 秒。
你有什么建议?