我正在尝试使用Apache服务器将python脚本作为cgi运行。我的脚本看起来像这样:
#!/usr/bin/python
import cgi
if __name__ == "__main__":
print("Content-type: text/html")
print("<HTML>")
print("<HEAD>")
我已经在httpd.conf中完成了必要的配置(在我看来):
<Directory "/opt/lampp/htdocs/xampp/python">
Options +ExecCGI
AddHandler cgi-script .cgi .py
Order allow,deny
Allow from all
</Directory>
我已使用chmod
设置脚本的执行权限然而,当我尝试通过localhost访问脚本时,我得到一个错误500:在标题之前输出脚本结束:script.py 可能是什么问题呢?该脚本是在类似Unix的环境中创建的,所以我认为clrf vs lf的问题不成立。非常感谢。
答案 0 :(得分:14)
我认为你错过了
后的印刷声明print("Content-type: text/html")
CGI脚本的输出应由两部分组成,用空行分隔。第一部分包含许多标题,告诉客户端是什么类型的数据 以下
第二部分通常是HTML,它允许客户端软件使用标题,内嵌图像等显示格式良好的文本。
可能看起来像
#!/usr/bin/env python
print "Content-Type: text/html"
print
print """
<TITLE>CGI script ! Python</TITLE>
<H1>This is my first CGI script</H1>
Hello, world!
"""
有关详细信息,请访问python-cgi
对于python3
#!/usr/bin/env python3
print("Content-Type: text/html")
print()
print ("""
<TITLE>CGI script ! Python</TITLE>
<H1>This is my first CGI script</H1>
Hello, world!
"""
)