Python的项目运行最好是开发使用什么环境,生产就什么环境,当我们使用django1.1和2.1分别开发了两个项目,又很坑,使用Windows Server为服务器的时候,该怎么配置呢,网上找了各种资料,要么不全,要么是Linux的,Apache有一些指令是不支持Windows的,甚至Django文档的部署也是使用了Linux的指令。折腾了好久,分享给大家参考:
一步步做,史上最简易配置,不改动任何默认配置内容。
划重点:
mod_wsgi下载要根据Apache和python版本下载
文末附有本篇文章涉及到的软件–我的网盘下载。
mod_wsgi-4.6.7+ap24vc15-cp37-cp37m-win_amd64.whl
表示对应Apache2.4采用VC15编译,python版本3.7 !!!一定要对应版本
第一步:在Windows安装好Python,我这里使用3.7.3版本
安装过程参考我的另一篇文章(3.5版本的,3.7一样安装):Windows Server安装Python
第二步:安装mod_wsgi
下载对应版本的mod_wsgi
得到.whl文件,在终端使用pip install
安装
完成后使用命令mod_wsgi-express module-config
导出mod_wsgi的配置路径,输出如下3行。
这3行相当重要!!!
第三步:配置Apache2.4
下载Apache选择对应版本
解压后出现Apache24文件夹。把它放在任何你喜欢的位置。进入
得到如下文件:我们只操作这里3个文件夹
!!!进入关键配置
打开主配置文件conf/httpd.conf
在最后加入刚刚mod_wsgi导出的配置(相当重要的那3行)和包含虚拟机配置文件(1行),如图
再打开虚拟机配置文件conf/extra/httpd-vhosts.conf
添加虚拟机配置(直接在文件最后添加
):
如有需要,再虚拟主机内添加网站管理员和网站名字配置。
ServerAdamin xxx
ServerName xxx
# 监听端口,!!!防火墙记得开启本端口
Listen 9000
<VirtualHost *:9000>
# WSGI脚本 规则 路径
WSGIScriptAlias / C:/Users/Administrator/Desktop/second_web/second_web/wsgi.py
# 项目wsgi.py权限配置
<Directory C:/Users/Administrator/Desktop/second_web/second_web>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
# 静态文件路径配置,即访问ip:port/static 路径
Alias /static C:/Users/Administrator/Desktop/second_web/static
<Directory C:/Users/Administrator/Desktop/second_web/static>
Require all granted
</Directory>
# 请求头验证开启(如果你使用django的验证,这可能非常有用)
WSGIPassAuthorization On
# 错误日志路径配置
ErrorLog "logs/second_web-error.log"
CustomLog "logs/second_web-access.log" common
</VirtualHost>
拷贝的请修改方框中路径配置:
第四步:添加项目运行的环境和环境包
打开项目代码文件夹进入wsgi.py文件,改为如下:
import os
import sys
# 加入本项目的虚拟环境(当两个django项目使用不同版本时,这可能非常有用)
virtualenv_dir = 'C:/Users/Administrator/Envs/customerService/Lib/site-packages' # 虚拟环境python包文件夹
sys.path.insert(0, virtualenv_dir) # 加入导包路径
from django.core.wsgi import get_wsgi_application
# 项目所在文件夹,python解释器才知道在哪里运行项目
PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, PROJECT_DIR) # 项目加入导包路径
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'customer_service.settings')
application = get_wsgi_application()
!!!配置虚拟环境关键步骤
到这里,基本上就配置完成了。
打开bin/httpd.exe
运行
黑框一直显示着,不是一闪而过的话,恭喜你!
附加内容:将Apache加入系统服务
打开命令提示符,cd 到 httpd.exe所在位置。
执行命令 httpd -k install
后可接参数 服务的名字
例如 myApache
,不加默认为Apache2.4
开启服务器管理器。
开启时如果报1053错误
。应该是缺少windows软件包vc_redis,下载vc_redis找到对应安装包下载安装。
删除Apache服务: sc delete 服务名
sc delete Apache24
本篇部署涉及的软件网盘下载:
我的网盘-百度网盘
提取码:m7qm
如有需要可参考我的另一篇博文:Apache默认配置文件中文注释说明
(本篇完)