windows环境下python3配置cgi(apache) 及问题处理

版本如下
Python 3.7.0
PyCharm 2019.1
Apache 2.4.39 x64

安装apache,解压到任意文件夹

解压目录如下
windows环境下python3配置cgi(apache) 及问题处理_第1张图片
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 下面我们去启动它
windows环境下python3配置cgi(apache) 及问题处理_第2张图片
出现如下界面 ,点击启动
windows环境下python3配置cgi(apache) 及问题处理_第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

你可能感兴趣的:(python)