8

我正在尝试使用 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 访问脚本时,我在 headers:script.py 之前收到错误 500:End of script output 可能是什么问题?该脚本是在类似 Unix 的环境中创建的,所以我认为 clrf vs lf 的问题不成立。非常感谢。

4

1 回答 1

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!
"""
)
于 2013-04-08T15:19:34.900 回答