当我在我的shell中运行python -m SimpleHTTPServer 8000
或python -m CGIHTTPServer 8000
时,我将当前目录的内容托管到互联网上。
当我浏览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,以及我托管它的文件夹。
答案 0 :(得分:33)
尝试使用python -m CGIHTTPServer 8000
。
请注意,您必须将脚本移至cgi-bin
或htbin
目录才能运行。
答案 1 :(得分:6)
所以我不允许我发表评论所以我将这个作为一个单独的答案加入,除了罗德里戈之外。
您可以使用默认为cgi_directories
的其他参数['/cgi-bin', '/htbin']
。更多信息here
答案 2 :(得分:0)
当我遇到这个问题时,我发现根据您运行python -m CGIHTTPServer 8000
命令时所在的目录,会产生不同的结果。当尝试在cgi-bin目录中运行命令时,浏览器继续返回原始脚本代码。一旦我将CD更高一级并再次运行python -m CGIHTTPServer 8000
命令,我的脚本就开始执行了。
答案 3 :(得分:0)
@ Bentley4 -ifyou仍然无法做到, 尝试导入cgi。
#!C:\ Python34 \ python.exe -u 导入cgi 打印(&#34;内容类型:text / html&#34;)
HTH
答案 4 :(得分:0)
在Python3中,命令行只是
python -http.server --cgi 8000
答案 5 :(得分:0)
这项工作对我来说,运行python -m CGIHTTPServer 8000
命令与cgi-bin相同的菜单级别,并将cgi_script.py移动到cgi-bin文件夹。在浏览器类型http://localhost:8000/cgi-bin/cgi_script.py