配置Apache+CGI是因为要学习Python的CGI编程,之前配置了一次,能完成简单一些简单的CGI编程,后续出现了问题,改配置文件没有解决问题反而是把配置文件改坏了,这边再重新配置一次。下载安装Apache请参考上一篇博文,这边直接从修改配置文件开始。
1.下载Apache解压后,放到自己想放盘符,进入Apache24目录下的conf文件夹下,打开httpd.conf配置文件
2.httpd.conf文件第38行左右,把Define SRVROOT后面的路径修改为自己的安装存放目录(此处,我自己的是放在E:/Apache24)
3.httpd.conf文件第60行左右,修改listen端口,默认是80,我的修改为8088(因为80端口已被占用)
4.httpd.conf文件第74行左右,开启基于主机的组授权(名称或IP地址),直接去掉前面的#注释标识符即可
LoadModule access_compat_module modules/mod_access_compat.so
5.httpd.conf文件第142行左右,开启Apache的代理模块,直接去掉前面的#注释标识符即可
LoadModule proxy_module modules/mod_proxy.so
6.httpd.conf文件第150左右,开启代理http和https请求,直接去掉前面的#注释标识符即可
LoadModule proxy_http_module modules/mod_proxy_http.so
7.httpd.conf文件第160行,开启rewrite模式,直接去掉前面的#注释标识符即可
LoadModule rewrite_module modules/mod_rewrite.so
8.httpd.conf文件第180行左右,开启虚拟主机动态配置,直接去掉前面的#注释标识符即可
LoadModule vhost_alias_module modules/mod_vhost_alias.so
9.httpd.conf文件第231行左右,设置CGI路径的访问权限
原本的内容为
把原本内筒注释掉或删掉,修改为如下图所示内容。
AllowOverride All
Options +ExecCGI
Order allow,deny
Allow from all
注意:所有的HTTP服务器执行CGI程序都保存在一个预先配置的目录,这个目录被称为CGI目录, 所以这里修改目录为"E:/Apache24/cgi-bin/"
10.httpd.conf文件第370行左右,设置CGI脚本文件路径,后面的路径修改为"E:/Apache24/cgi-bin/",和上一步一样
这里的意思是将" E:/Apache24/cgi-bin/"映射为/cgi-bin/,当通过浏览器访问/cgi-bin/目录时,实际上就是访问" E:/ Apache24/cgi-bin/"目录
11.httpd.conf文件第425行左右,先去掉前面的#注释标识符, 在AddHandler中添加.py后缀,添加到该行末尾,注意用空格隔开
AddHandler cgi-script .cgi .pl .py
12.httpd.conf文件第506行左右,开启虚拟主机配置,直接去掉前面的 #注释标识符即可
Include conf/extra/httpd-vhosts.conf
13.至此,配置文件已经修改完毕,以管理员身份进入命令提示符界面,进入Apache24/bin文件目录下,使用命令:httpd -k install -n "Apache2.4"安装 Apache服务器
14.安装成功后,需要启动Apache,输入下面命令分别可以启动,停止,重启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
15.启动成功后,在浏览器输入http://localhost:8088,按Enter按键进入,显示it works界面,则安装成功。
如果提示启动失败,进行winsock的修复。在命令提示符界面里输入:netsh winsock reset,然后重启电脑即可
16.创建Python文件,保存在"E:/Apache24/cgi-bin"目录下,Python文件内容如下:
#!E:/Python/python.exe
#-*- coding:UTF-8 -*-
print ("Content-type:text/html")
print #空行,告诉服务器结束头部
print ('')
print ('
浏览器中输入http://localhost:8088/cgi-bin/hello.py查看
17.如果想删除Apache服务,在命令提示符界面执行sc delete apache2.4即可删除服务。
18.Apache+CGI配置方法参考博客地址:https://blog.csdn.net/zhuanshu666/article/details/74936940