将python脚本作为cgi apache服务器运行

时间:2013-04-08 11:34:19

标签: python apache cgi

我正在尝试使用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的问题不成立。非常感谢。

1 个答案:

答案 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!
"""
)