版本如下
Python 3.7.0
PyCharm 2019.1
Apache 2.4.39 x64
安装apache,解压到任意文件夹
解压目录如下
1.配置更改conf目录下httod.conf配置文件
1.1 找到
Define SRVROOT “/Apache24”
ServerRoot “${SRVROOT}”
替换为
Define SRVROOT “文件路径”
ServerRoot “文件路径”
例:Define SRVROOT “F:\httpd-2.4.39-o102r-x64-vc14\Apache24”
1.2 找到
ScriptAlias /cgi-bin/ “${SRVROOT}/cgi-bin/”
替换为
ScriptAlias /cgi-bin/ “文件路径/cgi-bin/”
例:ScriptAlias /cgi-bin/ “F:/httpd-2.4.39-o102r-x64-vc14/Apache24/cgi-bin/”
1.3 找到
AllowOverride None
Options None
Require all granted
替换为
AllowOverride None
Options Indexes FollowSymLinks ExecCGI
Require all granted
Require host ip
1.4 找到
#AddHandler cgi-script .cgi .pl
替换为
AddHandler cgi-script .cgi .pl .py
1.5 最后可选择性改变端口号
Listen 80
更改为
Listen 任意
2.配置完成后以管理员身份运行命令控制符(cmd)
2.1 转到apache目录bin下
F:\httpd-2.4.39-o102r-x64-vc14\Apache24\bin>
2.2 输入以下命令
httpd.exe -k install
当输出[Wed Apr 24 11:09:51.416942 2019] [mpm_winnt:error] [pid 11072:tid 568] AH00433: Apache2.4: Service is already installed.
代表配置服务成功
计算机中就会多出一个上图所示管理项
2.3 下面我们去启动它
出现如下界面 ,点击启动
点击Services查看服务是否启动
3.在F:\httpd-2.4.39-o102r-x64-vc14\Apache24\cgi-bin下建XXX.py文件
#!D:\Python\python.exe
# -*- coding: utf-8 -*-
import codecs, sys
sys.stdout = codecs.getwriter('utf8')(sys.stdout.buffer) #不加乱码
print ("Content-type:text/html")
print ("") # 空行的目的是结束头部,不加报500
print ('')
print ('')
print ('标题 ')
print ('')
print ('')
print ('在这里输出结果!!!
')
print ('')
print ('')
运行页面 http://localhost:你写的端口号/cgi-bin/你建的项目.py
例:http://localhost:9004/cgi-bin/hello.py
问题处理:
Q.更改了htdocs中的index.html 发现无法正常访问根目录 更改回后问题依然存在
A.此时应该把httpd.conf配置文件的
> DocumentRoot "${SRVROOT}/htdocs"
修改为
DocumentRoot "F:/httpd-2.4.39-o102r-x64-vc14/Apache24/htdocs"
这样即可正常访问
Q.我在htdocs文件夹中添加了一个页面,发现无法访问到这个页面,打开logs/error.log日志文件发现摘要server certificate does NOT include an ID which matches the server name(服务器证书不包含与服务器名称匹配的ID)
A.解决方法,打开httpd.conf配置文件,注释掉
LoadModule ssl_module modules/mod_ssl.so
Q.我想更改HTML文件的存放目录,改如何操作
A.首先更改httpd.conf配置文件夹下的
DocumentRoot "你想要存放的目录"
例: "F:/httpd-2.4.39-o102r-x64-vc14/Apache24/test"
其次更改conf/extra文件夹下的httpd-vhosts.conf配置文件
将
DocumentRoot "${SRVROOT}/htdocs"
改为
DocumentRoot "${SRVROOT}/上面同款目录"
DocumentRoot "这样改为固定目录也可"
这样操作即可更变html存放目录
Q.根据上述更变HTML操作,仍无法访问http://localhost:端口号/文件夹名/页面.html
且翻阅log文件显示正常
XXXXX: (Win64) configured -- resuming normal operations
XXXXX: Server built
XXXXX: Command line: 'F:\\httpd-2.4.39-o102r-x64-vc14\\Apache24\\bin\\httpd.exe -d F:/httpd-2.4.39-o102r-x64-vc14/Apache24'
XXXXX: Parent: Created child process 4956
XXXXX: Child: Starting 64 worker threads.
A.连接中不需要添加存放文件夹,直接访问 http://localhost:端口号//页面.html