【问题标题】:How to run a python script inside the cgi-bin of apache server?如何在 apache 服务器的 cgi-bin 中运行 python 脚本?
【发布时间】:2012-07-27 12:06:54
【问题描述】:

我在apache2的cgi-bin中放了一个简单的python脚本,并尝试使用浏览器执行如下,

“http://www.example.com/cgi-bin/test.py”

但它给出了 500 内部服务器错误。

下面是apache2中的error.log。

[Sun Jul 29 22:07:51 2012] [error] (8)Exec format error: exec of '/usr/lib/cgi-bin/test.py' failed [Sun Jul 29 22:07:51 2012] [error] [client ::1] 脚本头过早结束:test.py [Sun Jul 29 22:07:51 2012] [error] [client ::1] 文件不存在:/var/www/favicon.ico

谁能帮我解决这个问题?

【问题讨论】:

  • 好吧,如果你提供你的源代码... >_>
  • 请不要再自欺欺人了,现在没有人将 python 用于网络作为 CGI,如果您尝试将 mod_python 用于 Apache,您甚至会被视为“怪人”。请使用 WSGI 框架,有很多可供选择。 Bottle、Flask 或 web.py 可以是一个好的开始。

标签: python apache


【解决方案1】:

BlaXpirit 的答案应该可以解决您的 500 服务器内部错误问题。

请务必注意第一个打印语句末尾的“\n”。你也可以写成

print("Content-Type: text/html; charset=utf-8")

打印()

我很惊讶地发现,即使您的 Python 程序只要做服务器端工作——根本不响应浏览器,写出这些标头也是必要的。

【讨论】:

    【解决方案2】:

    看起来您没有正确发送标头。

    试试这个最简单的示例脚本是否运行:

    print('Content-Type: text/html; charset=utf-8\n')
    print("Hello, World!")
    

    【讨论】:

    • 不,我按照你说的正确发送了那个。但问题是一样的。 . . .
    猜你喜欢
    • 2016-12-08
    • 2013-03-30
    • 2018-01-30
    • 2015-03-11
    • 2011-03-12
    • 1970-01-01
    • 2011-09-30
    相关资源
    最近更新 更多