Win7环境下Apache+mod_wsgi本地部署Django

django基础已经掌握的同窗能够尝试将项目发布已寻找些许成就感,以鼓励本身接下来进行django的进阶学习python

之前你老是使用python manage.py runserver进行服务启动,可是殊不知:git

  1. runserver是单线程服务,Apache支持多线程,性能再也不一个等级
  2. runserver在debug模式下才能使用静态文件,而debug模式下运行会留存不少debug信息,时间长了内存爆炸
  3. runserver挂了就GG,可是Apache很稳定,就算挂了,也只挂掉wsgi线程
  4. runserver方便开发调试而产生,生产环境不可用

废话很少说,上干货(前提:python环境ok,django项目ok,本地可运行)github

做者项目路径:F:/py_workspace/DJ/projweb

Apache路径:E:\httpd-2.4.33-win64-VC15\Apache24apache

1、环境

  1. OS:win7
  2. Python2.7:本身安装配置环境变量便可
  3. Django1.8:详见“搞测试”公众号
  4. Apache2.4:点击下载
  5. mod_wsgi.so:点击下载

2、Apache配置

  1. 点击下载,选择适合本身的Apache版本(32位/64位)下载,下载完成获得httpd-2.4.33-win64-VC15.zip。
  2. 解压后打开conf/httpd.conf配置文件,修改以下配置:
ServerRoot "E:\httpd-2.4.33-win64-VC15\Apache24"
Listen 192.168.200.235:8090
#ServerName 192.168.200.235:8090   #能够注释掉
DocumentRoot "E:\httpd-2.4.33-win64-VC15\Apache24\htdocs"    #Apache路径下htdocs文件夹路径,下同
<Directory "E:\httpd-2.4.33-win64-VC15\Apache24\htdocs">
ScriptAlias /cgi-bin/ "E:\httpd-2.4.33-win64-VC15\Apache24\cgi-bin/"    #Apache路径下cgi-bin文件夹的路径,下同
<Directory "E:\httpd-2.4.33-win64-VC15\Apache24\cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

    在Apache的bin路径下运行:httpd.exe,出现Apache控制台,访问localhost:8090,出现 It works 说明Apache服务启动成功。django

    或者在httpd.exe所在路径下shift+邮件选择在此处打开命令窗口(CMD),键入:httpd.exe -k start 一样能够启动Apache服务。
windows

    想要查看Apache服务,右击个人电脑,选择管理,查看服务便可。
多线程

3、mod_wsgi配置

  1. 点击下载,将下载成功的压缩包解压,选择适合本身版本的so文件。
  2. 将so文件复制到Apache路径下的modules文件夹下便可。
  3. 将so文件放到指定位置后再次进行httpd.conf的项目和wsgi配置(直接在httpd.conf后面追加便可)。
#add mod_wsgi
LoadFile "c:/python27/python27.dll"
LoadModule wsgi_module modules/mod_wsgi-py27-VC9.so
WSGIPythonHome "c:/python27"

WSGIScriptAlias / F:/py_workspace/DJ/proj/proj/wsgi.py 

WSGIPythonPath  F:/py_workspace/DJ/proj/

<Directory F:/py_workspace/DJ/proj/proj>  
<Files wsgi.py>  
    Require all granted  
</Files>  
</Directory> 

    配置完成后再次启动Apache服务,访问localhost:8090便可看到Django web项目的页面了。ide

4、静态文件配置

    一样是在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>  

5、别忘了

  修改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供本身调测使用,而不让局域网内的人访问。

6、Q&A

  Q:启动Apache的时候提示:没法启动此程序,由于计算机中丢失VCRUNTIME140.dll 尝试从新安装此程序以解决此问题

  A:安装Microsoft.Net.Framework 4.6.1,点击下载;安装Visual C++ Redistributable for Visual Studio 2015,点击下载

  参考资料:第一第二

相关文章
相关标签/搜索