0

我有下面的简单 python 脚本,hellocgi.py

import sys
sys.stdout.write("Content-type: text/html \r\n\r\n")
sys.stdout.write("<!doctype html><html><head><title>Hello CGI</title></head>")
sys.stdout.write("<body><Hello CGI</h2></body></html>")

文件放在目录中

/Users/MyName/cgi-bin

然后我更改权限

chmod +x hellocgi.py

并运行

python -m CGIHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

如果我打开浏览器,http://localhost:8000/cgi-bin/hellocgi.py,我会得到:

Error response
Error code 404.
Message: No such CGI script ('/cgi-bin/hellocgi.py').
Error code explanation: 404 = Nothing matches the given URI.

谁能告诉我发生了什么?我还尝试调整 /Library/WebServer/CGI-Executables 中的脚本,但这不起作用。

谢谢

4

2 回答 2

0

该脚本需要读取权限,而不是执行权限。python解释器执行,脚本只是从文件系统中读取。

于 2013-09-15T00:35:43.637 回答
0

我用无效(不存在)路径复制了您列出的错误,因此我建议您重新检查您使用的目录以及文件名和 url 的拼写。

根据文档 [1],“此类用于从当前目录及以下目录提供文件或 CGI 脚本的输出” CGIHTTPServer 与根目录树一起工作,该目录树植根于运行它的目录。因此,您应该选择一些目录($HOME 有效,如果您只想进行一些测试,/tmp/www/ 也有效),设置您要提供的文件,然后从该目录启动服务器。

[1] http://docs.python.org/2/library/cgihttpserver.html

于 2013-09-15T23:34:42.010 回答