作为CGI Apache服务器运行python脚本
问题内容:
我正在尝试使用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设置了脚本的执行权限
但是,当我尝试通过本地主机访问脚本时,在headers:script.py之前出现脚本输出错误500:End可能是什么问题?该脚本是在类似Unix的环境中创建的,因此我认为clrf
vs lf的问题不成立。非常感谢。
问题答案:
我认为您在之后缺少打印声明
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!
"""
)