CGI

CGI(Common Gateway Interface)也叫通用网关接口,它是一个web服务器主机提供信息服务的标准接口,只要遵循这个接口,web服务器就能获取客户端提交的信息,转交给服务端的CGI程序进行处理,然后将处理结果返回给客户端。
CGI通讯是由两部分组成的:一部分是用户的浏览器显示的页面,也就是html页面,另一部分则是运行在服务器上的CGI程序。

Python3.x

windows下运行
找一个目录,新建一个文件夹,叫做“www”,在“www”文件夹下面新建一个目录,叫做“cgi-bin”
管理员打开cmd命令行工具,进入到“www”目录
python -m http.server --cgi 8001 
**端口号注意不要冲突**
在浏览器中,输入 http://localhost:8001

IIS 部署

Windows键+R,appwiz.cpl
打开控制面板的“卸载或更改程序”,打开或关闭Windows功能”,打开“Windows功能窗口”
选中IIS的组件,CGI一定要选中
“添加网站”,选中 CGI 程序
“功能视图”下的“IIS”组下选择“模块”,看到有一个“CgiModule”模块
“IIS”组双击“处理程序映射”,单击右边的“添加模块映射...”
“请求路径”中输入“*.cgi”
“模块”这个框填“CgiModule” 或者 “cgi”
“可执行文件” 选择 python.exe
名称自己取

常见问题:
用户访问权限问题:更改目录访问权限即可
ISAPI和CGI限制问题:解除IIS的CGI功能限制即可,“IIS”组中双击“ISAPI和CGI限制”,“编辑功能设置”,选中“允许未指定的CGI模块”
HTTP错误403.14 - Forbidden:启用目录浏览即可
1
2
3
4
5
6
7
8
9
10
11
12
import os

print("Content-type: text/html")
print()
print("<b>环境变量</b><br>";)
print("<ul>")
for key in os.environ.keys():
print("<li><span style='color:green'>%30s </span> : %s </li>" % (key,os.environ[key]))
print("</ul>")

# 中文乱码问题
# "<meta charset="utf-8"> 不要添加这一行

Apache 部署

Python+Apache+CGI完全配置

搭建CGI编程调试环境