zoukankan      html  css  js  c++  java
  • 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项目部署配置 ---------------##
    # 声明项目根目录变量
    Define DjangoRoot "D:/EduOnline/eduonline"
    
    # 添加"mod_wsgi.so"模块,这三行都是命令"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>
    
    # 项目静态文件配置 
    Alias /static "${DjangoRoot}/static"
    <Directory "${DjangoRoot}/static">
        AllowOverride None
        Options None
        Require all granted
    </Directory>
    
    # 项目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 ]

  • 相关阅读:
    【bzoj2100】[Usaco2010 Dec]Apple Delivery 最短路
    【bzoj2190】[SDOI2008]仪仗队 欧拉函数
    【bzoj1507】[NOI2003]Editor /【bzoj1269】[AHOI2006]文本编辑器editor Splay
    【bzoj1821】[JSOI2010]Group 部落划分 Group Kruskal
    【bzoj1877】[SDOI2009]晨跑 费用流
    【bzoj2834】回家的路 分层图最短路
    【bzoj1579】[Usaco2009 Feb]Revamping Trails 道路升级 分层图最短路
    在UIElement外面多套一层布局面板(Grid、StackPanel)的意义
    在Window工作区按下鼠标左键拖动窗体
    滚动条——WPF ScrollViewer的应用
  • 原文地址:https://www.cnblogs.com/wcwnina/p/9974642.html
Copyright © 2011-2022 走看看