在OSX上设置CGIHTTPServer

我对此一无所知,请耐心等待。 我试图在OSX上设置python的CGIHTTPServer,以便能够在本地提供cgi-scripts,但我似乎无法做到这一点。

我有一个简单的testing脚本:

#!/usr/bin/env python import cgi cgi.test() 

(具有权限-rwxr-xr-x@ ,位于~/WWW (权限为drwxr-xr-x),从shell运行得很好,我有这个脚本来使用CGIHTTPServer:

 import CGIHTTPServer import BaseHTTPServer class Handler(CGIHTTPServer.CGIHTTPRequestHandler): cgi_directories = ["~/WWW"] PORT = 8000 httpd = BaseHTTPServer.HTTPServer(("", PORT), Handler) print "serving at port", PORT 

但是当我运行它,去localhost:8000只服务于脚本的内容,而不是结果(即它返回的代码,而不是输出)。

我究竟做错了什么?

问题是服务器不能识别~/WWW作为CGI目录,而只是浏览一个文件。 请注意,服务器的path从当前工作目录所在的位置开始。

我有一个server.py像你这样做,除了绝对path和循环运行服务器。

完整代码:

 $ cd ~ $ mkdir WWW $ cat > server.py #!/usr/bin/env python import CGIHTTPServer import BaseHTTPServer class Handler(CGIHTTPServer.CGIHTTPRequestHandler): cgi_directories = ["/WWW"] PORT = 8000 httpd = BaseHTTPServer.HTTPServer(("", PORT), Handler) print "serving at port", PORT httpd.serve_forever() ^D $ cat > WWW/test.py #!/usr/bin/env python import cgi cgi.test() ^D $ chmod +x server.py WWW/test.py $ ./server.py & $ # browse to http://127.0.0.1:8000/WWW/test.py