出于某种原因,我必须在我的 python cgi 脚本中使用分号。此外,它不识别 if 语句的常用语法。
例如,这有效:
#! /usr/bin/python
print "Content-type: text/html\n\n";
print "<html>Hello World!</html>";
但这不起作用:
#! /usr/bin/python
print "Content-type: text/html\n\n"
print "<html>Hello World!</html>"
这不起作用:
#! /usr/bin/python
print "Content-type: text/html\n\n";
if True:
print "<html>Hello World!</html>";
我从最后两个示例中得到 500 个内部服务器错误。我的 apache 错误日志说文件中存在语法问题。我在 OSX 上在 Apache2 上运行它。任何帮助是极大的赞赏!
编辑:所以显然这不是作为 python 脚本处理的。我想我可能已经找到了问题,但我不确定如何解决它。在我的 httpd.conf 中,我在末尾附加了以下几行,我认为它们是问题所在:
<Location /cgi-bin>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options ExecCGI
PerlSendHeader On
Order allow,deny
Allow from all
</Location>
我有这些行是为了让我的 cgi-bin 中的一些其他 cgi 脚本与 mod_perl 一起运行。如果这需要更改,它应该是什么样子以便 perl cgi 文件仍将在 mod_perl 下运行,但 python cgi 文件将作为 python 运行?为了清楚起见或以防万一,我的 cgi-bin 中的 perl 文件具有 .cgi 文件扩展名,但我尝试使用的 python cgi 文件具有 .py 文件扩展名。