Windows 配置Apache+CGI

Posted 小乌龟的笔记本

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于Windows 配置Apache+CGI的主要内容,如果未能解决你的问题,请参考以下文章

Apache服务器中运行CGI程序的方法,文中以Perl脚本作为示例

编写我的第一个CGI代码——python学习

Python CGI apache在windows下安装

Apache + PHP + Mysql Windows下配置

如何在 apache cgi 应用程序中调用 windows api (FindWindow)?

Apache+php在windows下的安装和配置