简单CGI脚本中的内部服务器错误(500)
我正在尝试在配置好我的服务器后运行一个简单的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来执行这个脚本。至少我这样做了,结果就成功了 :-) 。