23

当我运行python -m SimpleHTTPServer 8000python -m CGIHTTPServer 8000在我的 shell 中时,我将当前目录的内容托管到 Internet。

当我浏览到时,我想在命令行中使用上述命令使以下 cgi_script.py 正常工作192.xxx.x.xx:8000/cgi_script.py

#!/usr/bin/env python
print "Content-Type: text/html"
print
print """\
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
"""

但是这个脚本是按字面意思显示的,而不仅仅是“Hello World!”。部分。顺便说一句,我将 cgi_script.py 的文件权限以及我从中托管它的文件夹更改为 755。

4

6 回答 6

35

尝试使用python -m CGIHTTPServer 8000.

请注意,您必须将脚本移动到cgi-binorhtbin目录才能运行。

于 2012-05-01T10:23:19.433 回答
6

所以不允许我发表评论,所以我将此作为单独的答案添加到罗德里戈的答案中。

您可以使用另一个cgi_directories默认为['/cgi-bin', '/htbin']. 更多信息在这里

于 2013-06-02T10:07:29.150 回答
2

在 Python3 中,命令行很简单

python3 -m http.server --cgi 8000
于 2015-02-12T09:35:58.247 回答
0

当我遇到这个问题时,我发现根据您在运行python -m CGIHTTPServer 8000命令时所在的目录会产生不同的结果。当尝试在 cgi-bin 目录中运行命令时,浏览器继续返回原始脚本代码。一旦我 cd'ed 更高一级并python -m CGIHTTPServer 8000再次运行命令,我的脚本就开始执行。

于 2014-01-15T23:21:44.433 回答
0

@Bentley4 - 如果您仍然无法做到,请尝试导入 cgi。

#!C:\Python34\python.exe -u import cgi print ("Content-type:text/html")

高温高压

于 2014-12-22T17:53:01.253 回答
0

这对我有用,运行python -m CGIHTTPServer 8000与 cgi-bin 相同的菜单级别的命令,并将 cgi_script.py 移动到 cgi-bin 文件夹中。在浏览器中键入http://localhost:8000/cgi-bin/cgi_script.py

于 2016-01-23T08:42:42.313 回答