Windows 配置Apache+CGI
首先还是先在官网下载Apache,版本为Apache 2.4.26 x64,下载64位的
地址为:http://www.apachehaus.com/cgi-bin/download.plx
下载完成后解压,Apache24移动到你想放置的地方
我这里是把Apache24放在G盘下。
接下来进行CGI配置
进入conf,用记事本(或者Notepad等编辑器)编辑httpd.conf文件
【简洁版修改步骤:这里只列出了要修改的关键地方】(后面有介绍详细修改步骤)
# STEP:1.设置Appache在你电脑的安装目录 Define SRVROOT "G:/Apache24" ServerRoot "${SRVROOT}" ...
#Listen 12.34.56.78:80 # STEP:2.修改监听端口 Listen 88 ...
# STEP:3.开启基于主机的组授权(去掉下面这行的注释即可) LoadModule access_compat_module modules/mod_access_compat.so ... # STEP:4.开启apache的代理模块(直接去掉前面的注释即可) LoadModule proxy_module modules/mod_proxy.so ... # STEP:5.开启代理http和https请求(直接去掉前面的注释即可) LoadModule proxy_http_module modules/mod_proxy_http.so ...
# STEP:6.开启rewrite模式(直接去掉前面的注释即可) LoadModule rewrite_module modules/mod_rewrite.so ...
# STEP:7.开启虚拟主机动态配置(直接去掉前面的#注释即可)
LoadModule vhost_alias_module modules/mod_vhost_alias.so
...
# STEP:8.开启CGI路径的访问权限 <Directory "G:/var/www/cgi-bin/"> AllowOverride All Options +ExecCGI Order allow,deny Allow from all </Directory> ... # STEP:9.修改映射地址 ScriptAlias /cgi-bin/ "G:/var/www/cgi-bin/" ... # STEP:10.添加后缀 AddHandler cgi-script .cgi .pl .py ... # STEP:11.开启虚拟主机配置 # Virtual hosts Include conf/extra/httpd-vhosts.conf
...
详细讲解配置步骤:
Step:1.修改安装目录,在39行左右
当前Apache安装存放的目录,例如我这里的"G:/Apache"
修改Define SRVROOT后面的路径
Step:2.修改Listen端口,在67行左右
默认为80,80端口可能会被其他程序占用,所以我这里修改为88,当然也可以修改为其他的8088、90等,只要没有被占用就行了
Step:3.开启基于主机的组授权(名称或IP地址),在81行左右
直接去掉前面的#注释即可
LoadModule access_compat_module modules/mod_access_compat.so
Step:4.开启apache的代理模块 ,在149行左右
直接去掉前面的#注释即可
LoadModule proxy_module modules/mod_proxy.so
Step:5.开启代理http和https请求,在157行左右
直接去掉前面的#注释即可
LoadModule proxy_http_module modules/mod_proxy_http.so
Step:6.开启rewrite模式,在167行左右
直接去掉前面的#注释即可
LoadModule rewrite_module modules/mod_rewrite.so
Step:7.开启虚拟主机动态配置,在188行左右
直接去掉前面的#注释即可
LoadModule vhost_alias_module modules/mod_vhost_alias.so
Step:8.设置CGI路径的访问权限,在239行左右
原本的内容为
<Directory />
AllowOverride none
Require all denied
</Directory>
删掉或注释掉,修改为下面的内容
<Directory " G:/var/www/cgi-bin/">
AllowOverride All
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
注意,所有的HTTP服务器执行CGI程序都保存在一个预先配置的目录。
这个目录被称为CGI目录,并按照惯例,它被命名为/var/www/cgi-bin目录。
所以这里修改的目录为“G:/var/www/cgi-bin/”。(我在G盘手动创建了"G:/var/www/cgi-bin/"目录)
Step:9.设置CGI脚本文件路径,在373行左右
后面的路径修改为“G:/var/www/cgi-bin/”,跟上一步一样
这里的意思是将" G:/var/www/cgi-bin/"映射为/cgi-bin/,当通过浏览器访问/cgi-bin/目录时,实际上就是访问" G:/var/www/cgi-bin/"目录
Step:10.AddHandler中添加.py后缀,,在428行左右
这样我们就可以访问.py结尾的Python脚本文件
先去掉前面的#注释,再在后面加上.py就行了,注意用空格隔开
Step:11.开启虚拟主机配置,在509行左右
直接去掉前面的#注释即可
Include conf/extra/httpd-vhosts.conf
这样修改httpd.conf就可以了,保存即可。
然后把Apache安装成Windows后台服务
使用命令:httpd -k install -n "Apache2.4"
前面的配置没问题的话,一般是安装成功的
注意要先指定到Apache的bin目录下再执行命令
启动Apache 启动:httpd.exe -w -n "Apache2.4" -k start 停止:httpd.exe -w -n "Apache2.4" -k stop 重启:httpd.exe -w -n "Apache2.4" -k restart
注意,如果启动失败,出现这样的错误, make_sock: could not bind to address [::]:443
请参考这篇文章的处理方式:https://www.cnblogs.com/music-liang/p/11845975.html
启动成功后,浏览器输入 http://localhost:88/
现实这样即为成功。
如果提示启动失败
进行winsock的修复
在运行里输入:netsh winsock reset
然后重启电脑即可
在G:/var/www/cgi-bin目录下面放一个文件
chap15.5.cgi文件内容如下。这是我学习Python基础教程第15章的一个示例。
注意,第1行必须要加上Python解释器。否则会出错。
#!C:\Users\heliang\AppData\Local\Programs\Python\Python38-32\python.exe print("Content-type:text/plain") print() print("-------使用CGI创建动态网页--------") """ python -m http.server --cgi 如果是在Linux下面,则第1行 应该像下面这么写 #!/usr/bin/env python """ # http://localhost:88/cgi-bin/chap15.5.cgi print("Hello, world!") print() print("CGI")
在浏览器中输入:
http://localhost:88/cgi-bin/chap15.5.cgi
大功告成。
PS:
如果想删除服务
执行:sc delete apache2.4
参考地址:
https://blog.csdn.net/zhuanshu666/article/details/74936940