前提、部署环境
1. windows 10 x64
2. apache 2.4 x64
3. python 3.5 x64
4. django 1.11
5. mod_wsgi: ap24vc14-cp35-cp35m-win_amd64
一、 下载文件
1. 下载 apache2.4 x64(x64 代表给 64 位系统用的)
list: https://www.apachehaus.com/cgi-bin/download.plx
file: https://www.apachehaus.com/cgi-bin/download.plx?dli=XhkTpRVeNNzTUJ0KRxGa6BlVOpkVFVFdOhlR1FVU
2. 下载 mod_wsgi(ap24vc14-cp35-cp35m-win_amd64, ap 代表 Apache 版本、vc14 代表 Visual Studio C 2015、 vc15 Visual Studio C 2017、cp 代表 python 版本、amd 64 代表 64位系统)
list: http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
file: http://www.lfd.uci.edu/~gohlke/pythonlibs/zhckc95n/mod_wsgi-4.5.19 ap24vc14-cp35-cp35m-win_amd64.whl
二、安装 apache2.4 x64
解压 httpd-2.4.28-o102l-x64-vc14.zip 复制 Apache24 文件夹到你指定的目录即可(本人路径:E:AppServhttpd-2.4.28-o102l-x64-vc14Apache24)
三、安装 mod_wsgi-4.5.19 ap24vc14-cp35-cp35m-win_amd64.whl
1. cmd 中执行:(没有 mod_wsgi.so 文件)
代码语言:javascript复制pip install mod_wsgi-4.5.19 ap24vc14-cp35-cp35m-win_amd64.whl
2. 获取 mod_wsgi 载入代码(cmd 中执行)
代码语言:javascript复制cd E:Python35Scripts
mod_wsgi-express module-config
以下这段是替代原来的 LoadModule wsgi_module modules/mod_wsgi.so 载入 mod_wsgi 方法
代码语言:javascript复制E:Python35Scripts>mod_wsgi-express module-config
LoadFile "e:/python35/python35.dll"
LoadModule wsgi_module "e:/python35/lib/site-packages/mod_wsgi/server/mod_wsgi.c
p35-win_amd64.pyd"
WSGIPythonHome "e:/python35"
四、配置 httpd.conf (E:AppServhttpd-2.4.28-o102l-x64-vc14Apache24conf, 参数详情介绍)
代码语言:javascript复制# 定义 SRVROOT 变量,引用使用 ${SRVROOT};定义服务运行路径 ServerRoot
Define SRVROOT "E:/AppServ/httpd-2.4.28-o102l-x64-vc14/Apache24"
ServerRoot "E:/AppServ/httpd-2.4.28-o102l-x64-vc14/Apache24"
# 监听80端口
Listen 80
# 添加mod_wsgi.so 模块
LoadFile "e:/python35/python35.dll"
LoadModule wsgi_module "e:/python35/lib/site-packages/mod_wsgi/server/mod_wsgi.cp35-win_amd64.pyd"
WSGIPythonHome "e:/python35"
# 联系邮箱
ServerAdmin zhuoqun527@qq.com
# 服务器域名或者 ip
ServerName 10.0.0.20
# 指定项目的 wsgi.py 配置文件路径
WSGIScriptAlias / H:/Python_1608/joyoo/joyoo/wsgi.py
# 指定项目路径
WSGIPythonPath H:/Python_1608/joyoo
# 指定 python 的目录
# 因为载入 mod_wsgi.pyd 时已经写了 python 目录这里就注释了
# WSGIPythonHome E:/Python35
# 添加wsgi的读取权限
<Directory H:/Python_1608/joyoo/joyoo>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
# 声明 静态文件 的映射
Alias /static H:/Python_1608/joyoo/static_root
<Directory H:/Python_1608/joyoo/static_root>
AllowOverride None
Options None
Require all granted
</Directory>
# 声明 media 文件的映射
Alias /media H:/Python_1608/joyoo/media
<Directory H:/Python_1608/joyoo/media>
AllowOverride None
Options None
Require all granted
</Directory>
五、windows 添加删除服务
1. 添加服务:
命令:启动命令路径文件 -k install -n 服务名称
打开CMD窗口,输入:"E:AppServhttpd-2.4.28-o102l-x64-vc14Apache24bin>httpd.exe" -k install -n apache2.4x64
切记,包含引号。该命令的意思是,安装apache服务,并将该服务名称命名为 apache2.4x64(你也可以改成别的),回车。
cmd 中执行:
代码语言:javascript复制E:AppServhttpd-2.4.28-o102l-x64-vc14Apache24bin>httpd.exe -k install -n apache2.4x64
Installing the 'apache2.4x64' service
The 'apache2.4x64' service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.
2. 删除服务:
命令:sc delete 服务名称
E:Python35Scripts>sc delete apache2.4x64
[SC] DeleteService 成功
3. 局域网 固定本机电脑 IP:
六、部署出错了,咋办?
1. 检查 Apache 、python、mod_wsgi 版本是否匹配
2. 检查 httpd.conf 配置是否正确
3. 出错的日志,丢到搜索引擎去找答案,挨个尝试
4. 无法访问 80 端口,给系统入站规则 增加 TCP 80 端口可访问, 操作文档
5. 导入 pandas 包后,打开站点一直响应中,httpd.conf 增加一行:WSGIApplicationGroup %{GLOBAL},详情
七、centos7 下部署
centos7 virtualenv django uwsgi nginx 部署站点