Django Windows+Apache+mod_wsgi环境下部署
环境准备
本文将介绍如何在Windows系统上部署Django web项目,本次部署基于下面的架构:
Windows10 64位 + Python3.6 + Django1.11 + Apache2.4 + mod_wsgi
在本文中,我着重介绍在部署Django过程中关于mod_wsgi的安装和在Apache httpd.conf中的关键配置内容,其余部分的安装和配置,可参考本站相关链接内容自行解决。
各位先莫慌,总体而言,在Windows下部署Django比在Linux下部署要简单得多!相信我,跟着我写的来,分分钟搞定。走起,Now!
Python虚拟环境
本节略。详见本站链接,戳这里>>Python虚拟环境安装。
Apache安装与配置
本节略。详见本站链接,戳这里>>Apache安装、Apache配置。对于Django,无需配置虚拟目录。
安装mod_wsgi和获取其配置信息
进入Python扩展库官网下载mod_wsgi模块:http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
下载好了,现在进入Python虚拟环境,执行如下命令进行安装(用pip安装)和获取其配置信息:
输入:mod_wsgi-express module-config
后面的配置中会用到这些配置信息。
Django与Apache的配置
首先记得修改:
Define SRVROOT "C:/Program Files/Apache24" # 修改Apache实际绝对安装目录 Listen 8080 # 监听端口 ServerName www.wcwnina.com:8080 # 可访问的主机,域名。需要在Windows的hosts文件中做IP映射
然后在 httpd.conf 配置文件末尾添加以下内容:
##------------------------- Django项目部署:Python配置 -------------------------## # 声明项目根目录变量 Define DjangoRoot "D:/EduOnline/eduonline" # 添加"mod_wsgi"模块,这三行都是命令"mod_wsgi-express module-config"显示出来的 LoadFile "C:/Program Files/Python36/python36.dll" LoadModule wsgi_module "d:/eduonline/vpy-eduonline/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd" WSGIPythonHome "d:/eduonline/vpy-eduonline" # 指定项目的"wsgi.py"文件路径 WSGIScriptAlias / "${DjangoRoot}/eduonline/wsgi.py"
# 指定Django项目根目录,并配置访问权限。WSGIPythonPath取代DocumentRoot配置,或者保留DocumentRoot一致 WSGIPythonPath "${DjangoRoot}" <Directory "${DjangoRoot}"> Require all granted </Directory> # Django项目静态文件配置 Alias /static "${DjangoRoot}/static" <Directory "${DjangoRoot}/static"> AllowOverride None Options None Require all granted </Directory> # Django项目media文件配置, 用户上传图片等媒体文件 Alias /media "${DjangoRoot}/media" <Directory "${DjangoRoot}/media"> AllowOverride None Options None Require all granted </Directory>
然后进入Django项目的settings.py文件下进行配置。
# 上线时必须将DEBUG设为False DEBUG = False # 可指定主机,若元素为'*',表示所有同一局域网内的网络均可被访问 ALLOWED_HOSTS = ['*']
重启Apache服务
修改完配置后,只需重启Apache服务即可,此时会连着wsgi服务一并重启,因为httpd.conf配置中加载了mod_wsgi模块。
CMD重启Apache命令:
httpd -k restart -n apache # apache为Windows托管服务名 或:
net stop apache 然后 net start apache # Windows服务管理命令,没有restart
测试效果
访问测试:在浏览器地址栏输入"www.wcwnina.com:8080"或"localhost:8080"回车就可以进入Django项目网站了!其中www.wcwnina.com为httpd.conf中配置的主机域名ServerName。
效果:
OK,就这么简单,大功告成!
至此。转载请注明出处。
[ 本站相关链接:>>Linux环境下部署Django ]