1、首先是Apache环境,具体操作可以参考下面的博文:
https://blog.csdn.net/sunqian666888/article/details/78561399
2、安装windows下的Python,可以参照以下博文:
https://blog.csdn.net/culous/article/details/78604618
3、配置Apache的cfg文件,有几个需要注意的地方:
1)httpd.conf 文件 Define SRVROOT " 具体安装Apache路径"
2)LoadModule access_compat_module modules/mod_access_compat.so 这个比较重要,Apache 2.4版本以后兼容Order deny,allow 命令;这个模块需要加载;不然不会识别Order命令
3)<Directory />
Options FollowSymLinks
AllowOverride none
Order deny,allow
Allow from all
#Require all denied 修改访问目录权限
</Directory>
4)<Directory "${SRVROOT}/cgi-bin">
AllowOverride None
#Options None
Options +ExecCGI
Order deny,allow
Allow from all
#Require all granted 修改cgi-bin 目录权限
</Directory>
5)logs目录下有个error.log 文件,这个文件记录你运行的.py文件中的一些错误;比如malformed header from script 'hello.py': Bad header: <html> 这个是因为声明的Content-type:要有2个换行符结束;如果没有会出错。
print ("Content-type:text/html\n\n") #python 3.0之后print打印要有括号,不然会有语法错误。
6)中文识别不出来;导致脚本运行不能运行;这个可以通过error.log 查看UnicodeEncodeError: 'charmap' codec can't encode characters in position 17-27: character maps to <undefined> 正常就是中文不识别导致的。修改尝试了网上几种方式都不行,最后看个一位兄弟提供的方法:
import codecs, sys
import cgi
sys.stdout = codecs.getwriter('utf-8')(sys.stdout.buffer)
这个加在.py 脚本最上面,测试ok!
自此第一个cgi 代码,结束。附上结果图。