简单CGI脚本中的内部服务器错误(500)

11 投票
8 回答
39045 浏览
提问于 2025-04-15 14:32

我正在尝试在配置好我的服务器后运行一个简单的cgi脚本。

我的脚本看起来是这样的:

print "Content-type: text/html"
print
print "<html><head><title>CGI</title></head>"
print "<body>"
print "hello cgi"
print "</body>"
print "</html>"

当我访问我的脚本网址 http://127.0.0.1/~flybywire/cgi-bin/main.py 时,我看到:

内部服务器错误

服务器遇到了内部错误或配置错误,无法完成你的请求。

error.log 文件中,我看到以下内容:

[error] (8)执行格式错误:执行 '/home/flybywire/www/cgi-bin/main.py' 失败 [error] [client 127.0.0.1] 脚本头部提前结束:main.py

其他信息: Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.4.6 服务器在 127.0.0.1 端口 80

8 个回答

1

看起来Apache在执行这个脚本时遇到了问题。通常,对于Unix脚本,你需要在脚本的顶部指定解释器。

试着在顶部添加以下内容:

#!/usr/bin/python
13

另外,如果你是在Linux服务器上,记得保存文件时要使用Unix格式的换行符。你有用 chmod +x 命令让文件变成可执行的吗?

如果你在不同的环境中运行,可以使用 #!/usr/bin/env python 来确保使用当前的Python版本,这里的 env 就是为了这个目的。

25

你可能需要在你的脚本最上面加上 #!/usr/bin/python 这一行,这样可以告诉Apache用Python来执行这个脚本。至少我这样做了,结果就成功了 :-) 。

撰写回答