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:.设置Appache在你电脑的安装目录
Define SRVROOT "G:/Apache24"
ServerRoot "${SRVROOT}"
...
#Listen 12.34.56.78:
# STEP:.修改监听端口
Listen
...
# STEP:.开启基于主机的组授权(去掉下面这行的注释即可)
LoadModule access_compat_module modules/mod_access_compat.so
... # STEP:.开启apache的代理模块(直接去掉前面的注释即可)
LoadModule proxy_module modules/mod_proxy.so
... # STEP:.开启代理http和https请求(直接去掉前面的注释即可)
LoadModule proxy_http_module modules/mod_proxy_http.so
...
# STEP:.开启rewrite模式(直接去掉前面的注释即可)
LoadModule rewrite_module modules/mod_rewrite.so
... # STEP:7.开启虚拟主机动态配置(直接去掉前面的#注释即可)
LoadModule vhost_alias_module modules/mod_vhost_alias.so
...
# STEP:.开启CGI路径的访问权限
<Directory "G:/var/www/cgi-bin/">
AllowOverride All
Options +ExecCGI
Order allow,deny
Allow from all
</Directory>
... # STEP:.修改映射地址
ScriptAlias /cgi-bin/ "G:/var/www/cgi-bin/"
... # STEP:.添加后缀
AddHandler cgi-script .cgi .pl .py
... # STEP:.开启虚拟主机配置
# 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的更多相关文章
- windows 配置 apache的多个站点
windows 配置apache的多个站点 第一步打开apache的conf/extra/httpd-vhosts.conf,复制<VirtualHost></VirtualHost ...
- windows 配置 apache + php
需要工具 apache 下载地址 php for windows (与apache同版本,使用线程安全)下载地址 vc (Visual Studio C++) 根据 apache 与 php 的版 ...
- Windows 配置 Apache Python CGI
提示:安装Apache可参考 https://jingyan.baidu.com/article/0eb457e53c019f03f1a905c7.html 1. 打开URL: https://ww ...
- Windows 配置Apache以便在浏览器中运行Python script的CGI模式
打开httpd.conf,找到”#ScriptInterpreterSource Registry “,移除前面的注释# (如果找不到这行,就自己添加进去) 找到“Options Indexes Fo ...
- Windows配置Apache服务器
下载的Apache版本:httpd-2.4.32-o102n-x64-vc14 简单粗暴式配置: 1.打开\conf\httpd.conf修改第60行和第224行,其中8081是电脑上没有被使用的端口 ...
- windows配置apache tomcat 集群
1,安装包 httpd-2.2.22-win32-x86-no_ssl.msi 两个tomcat6 2,配置apachehttpd---配置的过程中有错误可以查看logs文件夹下的log文件进行排 ...
- windows配置apache支持https
https://my.oschina.net/ososchina/blog/510065
- windows+phpstudy(apache) 以cgi方式运行python
Apache配置 在httpd.conf中查找DocumentRoot: +ExecCGI 支持cgi DocumentRoot "F:\phpStud\PHPTutorial\WWW&qu ...
- Windows下配置Apache服务器并支持php
php环境的配置相对来说比较繁琐,网上教程大部分都是放一起说,总体感觉比较乱,其实Apache是一款通用的服务器软件,可以用来配置支持静态页面,php.Python.Java甚至asp等服务端语言,要 ...
随机推荐
- .NET基础知识(01)-值类型与引用类型
常见面试题目: 1. 值类型和引用类型的区别? 2. 结构和类的区别? 3. delegate是引用类型还是值类型?enum.int[]和string呢? 4. 堆和栈的区别? 5. 什么情况下会在堆 ...
- 10道Python常见面试题
1.MySQL索引种类 1.普通索引 2.唯一索引 3.主键索引 4.组合索引 5.全文索引 2.索引在什么情况下遵循最左前缀的规则? 最左前缀原理的一部分,索引index1:(a,b,c),只会走a ...
- Ajax异步后台加载Html绑定不上事件
因项目需要,需要实时从后台动态加载html,开发过程中,遇到事件绑定不上,后来百度一番,大概意思:ajax是异步加载的,页面一开始绑定事件的时候,后台数据还没有传过来,就绑定事件,这个时候找不到这个d ...
- Freemarker简单封装
Freemarker是曾经很流行的一个模板库,它是一种通用的模板库,不仅仅可以用来渲染html. 模板可以分为两类: 只能生成特殊类型文件的模板,如jinja.django.Thymeleaf.jad ...
- Docker Desktop for Windows 安装步骤
Docker Desktop for Windows 安装要求 Docker Desktop for Windows需要运行Microsoft Hyper-V.如果需要,Docker Desktop ...
- PHP-FPM Fastcgi 未授权访问漏洞
漏洞原理 Fastcgi Fastcgi是一个通信协议,和HTTP协议一样,都是进行数据交换的一个通道.HTTP协议是浏览器和服务器中间件进行数据交换的协议,浏览器将HTTP头和HTTP体用某个规则组 ...
- 电信NBIOT 5 - NB73模块下行测试(自己平台-电线平台-NB73)
电信NBIOT 1 - 数据上行(中国电信开发者平台对接流程) 电信NBIOT 2 - 数据上行(中间件获取电信消息通知) 电信NBIOT 3 - 数据下行 电信NBIOT 4 - NB73模块上行测 ...
- EM算法-完整推导
前篇已经对EM过程,举了扔硬币和高斯分布等案例来直观认识了, 目标是参数估计, 分为 E-step 和 M-step, 不断循环, 直到收敛则求出了近似的估计参数, 不多说了, 本篇不说栗子, 直接来 ...
- SQL注入:盲注
盲注简介 所谓的盲注就是在服务器没有错误回显的时候完成的注入攻击. 服务器没有错误回显,对于攻击者来说缺少了非常重要的"调试信息". 盲注分类 1.布尔盲注 布尔很明显Ture和F ...
- reduce计算数组中每个元素出现的次数 数组去重的几种方式 将多维数组转化为一维
// js计算数组中每个元素出现的次数 // var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice']; // var countedNames = ...