Win7环境下Apache+mod_wsgi本地部署Django
Posted phyger
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Win7环境下Apache+mod_wsgi本地部署Django相关的知识,希望对你有一定的参考价值。
django基础已经掌握的同学可以尝试将项目发布已寻找些许成就感,以鼓励自己接下来进行django的进阶学习
以前你总是使用python manage.py runserver进行服务启动,但是却不知:
- runserver是单线程服务,Apache支持多线程,性能不再一个等级
- runserver在debug模式下才能使用静态文件,而debug模式下运行会留存很多debug信息,时间长了内存爆炸
- runserver挂了就GG,但是Apache很稳定,就算挂了,也只挂掉wsgi线程
- runserver方便开发调试而产生,生产环境不可用
废话不多说,上干货(前提:python环境ok,django项目ok,本地可运行)
作者项目路径:F:/py_workspace/DJ/proj
Apache路径:E:\httpd-2.4.33-win64-VC15\Apache24
一、环境
- OS:win7
- Python2.7:自己安装配置环境变量即可
- Django1.8:详见“搞测试”公众号
- Apache2.4:https://www.apachelounge.com/download/
- mod_wsgi.so:https://github.com/GrahamDumpleton/mod_wsgi/releases/download/4.4.12/mod_wsgi-windows-4.4.12.tar.gz
二、Apache配置
- 点击https://www.apachelounge.com/download/,选择适合自己的Apache版本(32位/64位)下载,下载完成得到httpd-2.4.33-win64-VC15.zip。
- 解压后打开conf/httpd.conf配置文件,修改如下配置:
1 ServerRoot "E:\httpd-2.4.33-win64-VC15\Apache24" 2 Listen 192.168.200.235:8090 3 #ServerName 192.168.200.235:8090 #可以注释掉 4 DocumentRoot "E:\httpd-2.4.33-win64-VC15\Apache24\htdocs" #Apache路径下htdocs文件夹路径,下同 5 <Directory "E:\httpd-2.4.33-win64-VC15\Apache24\htdocs"> 6 ScriptAlias /cgi-bin/ "E:\httpd-2.4.33-win64-VC15\Apache24\cgi-bin/" #Apache路径下cgi-bin文件夹的路径,下同 7 <Directory "E:\httpd-2.4.33-win64-VC15\Apache24\cgi-bin"> 8 AllowOverride None 9 Options None 10 Require all granted 11 </Directory>
在Apache的bin路径下运行:httpd.exe,出现Apache控制台,访问localhost:8090,出现 It works 说明Apache服务启动成功。
或者在httpd.exe所在路径下shift+邮件选择在此处打开命令窗口(CMD),键入:httpd.exe -k start 同样可以启动Apache服务。
想要查看Apache服务,右击我的电脑,选择管理,查看服务即可。
三、mod_wsgi配置
- 点击https://github.com/GrahamDumpleton/mod_wsgi/releases/download/4.4.12/mod_wsgi-windows-4.4.12.tar.gz,将下载成功的压缩包解压,选择适合自己版本的so文件。
- 将so文件复制到Apache路径下的modules文件夹下即可。
- 将so文件放到指定位置后再次进行httpd.conf的项目和wsgi配置(直接在httpd.conf后面追加即可)。
1 #add mod_wsgi 2 LoadFile "c:/python27/python27.dll" 3 LoadModule wsgi_module modules/mod_wsgi-py27-VC9.so 4 WSGIPythonHome "c:/python27" 5 6 WSGIScriptAlias / F:/py_workspace/DJ/proj/proj/wsgi.py 7 8 WSGIPythonPath F:/py_workspace/DJ/proj/ 9 10 <Directory F:/py_workspace/DJ/proj/proj> 11 <Files wsgi.py> 12 Require all granted 13 </Files> 14 </Directory>
配置完成后再次启动Apache服务,访问localhost:8090即可看到Django web项目的页面了。
四、静态文件配置
同样是在httpd.conf配置文件后面追加即可。
1 #Alias /static F:/py_workspace/DJ/proj/static 2 #<Directory F:/py_workspace/DJ/proj/static> 3 # AllowOverride None 4 # Options None 5 # Require all granted 6 #</Directory> 7 8 #Alias /media F:/py_workspace/DJ/proj/media 9 #<Directory F:/py_workspace/DJ/proj/media> 10 # AllowOverride None 11 # Options None 12 # Require all granted 13 #</Directory>
五、别忘了
修改django的settings配置:
DEBUG = False
Listen 192.168.200.235:8090
ALLOWED_HOSTS = [‘*‘]
这样配置,局域网内的小伙伴就可以访问到你的Django Web项目了。
PS:因为在之前的httpd.conf配置中,已经配置listen为本机ip了,所以这里还是192xxx,有时候为了调试方便我们还在前面的listen中会配置ip为127.0.0.1:8090供自己调测使用,而不让局域网内的人访问。
六、Q&A
Q:启动Apache的时候提示:无法启动此程序,因为计算机中丢失VCRUNTIME140.dll 尝试重新安装此程序以解决此问题
A:安装Microsoft.Net.Framework 4.6.1,点击下载;安装Visual C++ Redistributable for Visual Studio 2015,点击下载。
以上是关于Win7环境下Apache+mod_wsgi本地部署Django的主要内容,如果未能解决你的问题,请参考以下文章
centos+apache+python34+django+mod_wsgi 开发环境搭建
win7 32位配置apache+wsgi+django环境