cha*_*ker 6 python cgi httpserver cgihttprequesthandler cgihttpserver
我有以下用于 CGI 处理 HTTP 服务器的最小代码,这些代码源自内管上的几个示例:
#!/usr/bin/env python
import BaseHTTPServer
import CGIHTTPServer
import cgitb;
cgitb.enable() # Error reporting
server = BaseHTTPServer.HTTPServer
handler = CGIHTTPServer.CGIHTTPRequestHandler
server_address = ("", 8000)
handler.cgi_directories = [""]
httpd = server(server_address, handler)
httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)
然而,当我执行脚本并尝试使用 CGI 在同一目录中运行测试脚本时http://localhost:8000/test.py,我看到的是脚本的文本,而不是执行的结果。
权限都设置正确,测试脚本本身不是问题(因为python -m CGIHTTPServer当脚本驻留在 cgi-bin 中时,我可以使用 运行它)。我怀疑这个问题与默认的 CGI 目录有关。
我怎样才能让脚本执行?
我的怀疑是正确的。派生此代码的示例显示了将默认目录设置为服务器脚本所在目录的错误方法。要以这种方式设置默认目录,请使用:
handler.cgi_directories = ["/"]
Run Code Online (Sandbox Code Playgroud)
注意:如果您没有任何类型的防火墙,这可能会带来巨大的安全漏洞。这只是一个指导性的例子。请务必极其小心地使用。
| 归档时间: |
|
| 查看次数: |
7284 次 |
| 最近记录: |