windows server 2012 R2 64位
apache 2.4.53 vc15
mod_wsgi‑4.9.0‑cp37‑cp37m‑win_amd64.whl
Python3.7.9
二、下载apachehttps://www.apachelounge.com/download/
如上链接点击进去下载apache2.4.53,注意看前面的要求,安装前必须确保vc_redist_x64已经安装好了。
然后在安装vc_redist_x64时需要windows server 2012 R2打上补丁包KB2999226,从微软官网下载这个补丁包,明明下载的是windows server 2012 R2的补丁包但是提示此补丁包不适合此系统,经过查找原来这个补丁包又依赖于KB2919355,然后你又会发现这个又不行,他又依赖于KB2919442。。真是一环扣一环。
从此博客发现的Windows Server 2012 R2 安装补丁KB2999226提示此更新不适合用于计算机 - 友情天 - 博客园
1、下载补丁KB2919442;KB2919355;KB2999226
请百度查找相关文件上自行下载补丁,这里也有链接:
https://support.microsoft.com/en-us/help/2919442/march-2014-servicing-stack-update-for-windows-8-1-and-windows-server-2
https://support.microsoft.com/en-us/help/2919355/windows-rt-8-1-windows-8-1-windows-server-2012-r2-update-april-2014
Update for Universal C Runtime in Windows
KB2919355这个补丁需要重启电脑生效,另外两个不用重启。
下一步开始正式安装apache2.4.53这个服务了,你可以直接解压然后把Apache2.4整个文件夹考本放到C:Apache2.4目录,也可以放在自己自定义目录
配置httpd.conf配置文件
1、如果放在了C:Apache2.4目录下,Define SRVROOT "C:/Apache24"不需要修改,否则修改为你自定义的目录
2、修改监听的端口,默认监听80端口
Listen 127.0.0.1:8000
3、修改ServerName
ServerName localhost:8000
4、安装apache服务到windows服务进程
进入到C:Apache2.4bin目录,已管理员权限打开cmd服务
安装服务
httpd -k install -n "服务的名称"
卸载服务
httpd -k uninstall -n "服务的名称"
启动服务
httpd -k start
停止服务
httpd -k stop
重启服务
httpd -k restart
运行httpd -k start,在浏览器打开http://127.0.0.1:8000 出现It ok 表示apache2.4服务启动成功
三、安装mod_wsgihttps://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
进入如上地址,下载对应python版本的mod_wsgi版本包,cp37对应python3.7版本
下载好了之后,运行pip3 install mod_wsgi‑4.9.0‑cp37‑cp37m‑win_amd64.whl
注意如果mod_wsgi包不是放在python的Scripts目录下的话,pip3 install 的时候需要指定包的绝对路径,否则会提示找不到这个包
1、获取mod_wsgi的关键文件路径
在cmd窗口运行
mod_wsgi-express module-config
会出现如下三行提示,把这三行提示全部拷贝下来,后面需要用
四、配置httpd.conf文件启动django项目
1、配置httpd.conf文件指向diango
# 1.安装wsgi模块后,出来的三行字符,直接复制过来
LoadFile "c:/users/startx/appdata/local/programs/python/python37/python37.dll"
LoadModule wsgi_module "c:/users/startx/appdata/local/programs/python/python37/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
WSGIPythonHome "c:/users/startx/appdata/local/programs/python/python37"
# 2.设置工程中的wsgi路径 ,根据自己项目路径修改
WSGIScriptAlias / C:workspacebookshopbookshopwsgi.py
# 3.设置工程路径 根据自己项目放置的路径修改
WSGIPythonPath C:workspacebookshop
# 4.设置wsgi路径 根据自己项目放置的路径修改
Require all granted
WSGIApplicationGroup %{GLOBAL}
保存文件
2、已管理员身份打开cmd到c:Apache2.4bin(根据自己安装的位置)运行
httpd -k start
去浏览器打开http://127.0.0.1:8000
如果你能正常访问那恭喜你,整个部署到此结束,如果你的djanggo项目要运行所有地址访问,需自行在settings文件的
ALLOWED_HOSTS = [“*”]改成这样
如果你发现服务根本没启动起来,httpd报错了,查看错误日志提示
Fatal Python error: initfsencoding: unable to load the file system codec
ModuleNotFoundError: No module named 'encodings'
Current thread 0x0000062c (most recent call first):
[Sun May 22 11:22:51.263166 2022] [mpm_winnt:crit] [pid 3660:tid 216] AH00419: master_main: create child process failed. Exiting.
这个问题搞了好久,解决方式很简单
在系统环境变量中增加
PYTHONHOME=C:UsersstartxAppDataLocalProgramsPythonPython37
PYTHONPATH=C:UsersstartxAppDataLocalProgramsPythonPython37Lib
再次启动
httpd -k start
也借鉴了此文章的
windows部署django项目_东木月的博客-CSDN博客_windows部署django



