环境:
Apache2.4 64bit
Python 3.9.1
Django 4.1.2
一、配置wsgi
pip install mod_wsgi-4.9.2-cp39-cp39-win_amd64.whl
Win10/Win11下离线安装该包,相对安全
下载地址:https://download.lfd.uci.edu/pythonlibs/archived/mod_wsgi-4.9.2-cp39-cp39-win_amd64.whl
离线安装成功如如下图所示:
二、获取配置
mod_wsgi-express.exe module-config
如下图所示:
三、配置httpd.conf
直接复制以下内容至httpd.conf
LoadFile "D:/Python/Python39/python39.dll"
LoadModule wsgi_module "D:/Python/Python39/lib/site-packages/mod_wsgi/server/mod_wsgi.cp39-win_amd64.pyd"
WSGIPythonHome "D:/Python/Python39"
四、配置Django项目(项目的根目录)
此处我的项目为:I:\work\dev\python\testDjango\app01
以下为我在apache-httpd的conf/httpd.conf末尾的配置
#1.添加mod_wsgi.so 模块
LoadFile "D:/Python/Python39/python39.dll"
LoadModule wsgi_module "D:/Python/Python39/lib/site-packages/mod_wsgi/server/mod_wsgi.cp39-win_amd64.pyd"
WSGIPythonHome "D:/Python/Python39"
#2.配置项目的wsgi路径
WSGIScriptAlias / I:/work/dev/python/testDjango/app01/app01/wsgi.py
# 配置项目路径
WSGIPythonPath I:/work/dev/python/testDjango/app01
<Directory I:/work/dev/python/testDjango/app01/app01>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
# 项目静态目录
Alias /static I:/work/dev/python/testDjango/app01/static_online
<Directory I:/work/dev/python/testDjango/app01//static_online>
AllowOverride None
Options None
Require all granted
</Directory>
# medias目录
Alias /medias I:/work/dev/python/testDjango/app01//medias
<Directory I:/work/dev/python/testDjango/app01//medias>
AllowOverride None
Options None
Require all granted
</Directory>
五、启动Apache服务
六、打开django项目setting配置(发布项目,调整则不变)
DEBUG = False
七、查看项目启动情况
这是部署完成后的正确启动。
FAQ
以上设置完成后,若无法启动Apache服务,需要查看环境变量中是否设置了PYTHONHOME的值,否则只能自行查看Apache-httpd-**/logs日志。这个问题是自己排查出来的,容易被忽略,因为我的Python是重装系统后,未再用安装包安装引发,所以需要注意。
有不懂的地方可以多多探讨,欢迎拍砖。
QQ:569860239
Email:code_captain@163.com