我有下面的简单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中的脚本,但这不起作用。
由于
答案 0 :(得分:0)
脚本需要读取权限,而不是执行权限。 python解释器执行,脚本只是从文件系统中读取。
答案 1 :(得分:0)
我使用无效(不存在)路径重现了您列出的错误, 所以我建议你重新检查你正在使用的目录以及 文件名和网址的拼写。
根据文档[1], “此类用于提供CGI的文件或输出 来自当前目录及以下的脚本“ CGIHTTPServer使用以该目录为根的目录树 它运行。因此,你应该选择一些目录($ HOME 和/ tmp / www /如果你想做一些测试一样工作,设置 您要提供的文件,并从目录中启动服务器。