• 部署django


    部署django - Apache + mod_wsgi + windows

    1、环境
    2、安装apache 32位
     
    3、安装mod_wsgi
    注意,因为apache是32位的,所以mod_wsgi也应该选择32位的。mod_wsgi的官网在这里(https://code.google.com/p/modwsgi/)。但是因为没有windows编译版本(自己编译几乎都是以失败告终),所幸在这里可以下载到编译版本(http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi),我们选择mod_wsgi-3.4.ap24.win32-py3.3.zip进行下载。
    下载过mod_wsgi之后,解压之后的文件为“mod_wsgi.so”文件。我们拷贝它到apache安装目录下面的modules文件夹。
    光拷贝mod_wsgi.so文件是不行的,我们还需要修改apache的配置文件,让apache知道mod_wsgi的存在。apache的配置文件在apache安装目录下的conf文件夹中的httpd.conf文件。使用记事本或者任何你喜欢的文本编辑器打开它,在文件的最后添加下面的内容并保存就可以了:
    LoadModule wsgi_module modules/mod_wsgi/mod_wsgi.so
     
    3、配置django project
    第一步,你要有个django projec,如果你这是想尝试一下如何部署而没有项目的话,可以在到我的github上下载一个https://github.com/liulixiang1988/python_study_case
    django project的目录结构如下:
     
    第二步 修改wsgi.py文件
    原以为wsgi.py不需要修改的,可是发现如果不将目录所在的文件夹添加到系统路径中,apache还是会报错,因此在wsgi.py添加下面2行
    import sys
    sys.path.append('E:/git/python_dev/python_study_case/django/mydjangosite') 
    其中append的参数就是你的project下的目录

    第三步 配置apache/conf/httpd.conf文件
    打开httpd.conf文件,在后面添加下面内容
     
    #添加映射,其中WSGIScriptAlias /是映射到根目录,如果你需要映射到其他地址,可以改为WSGIScriptAlias /myproject (假设myproject是你想要的地址,那么你可以通过访问localhost/myproject来访问你的网站)
    WSGIScriptAlias / E:/git/python_dev/python_study_case/django/mydjangosite/mydjangosite/wsgi.py
    #指明应用路径,如果你是使用virtualenv,那么还需要添加virtualenv的site-packages路径,中间用":"分隔
    WSGIPythonPath E:/git/python_dev/python_study_case/django/mydjangosite:E:/git/python_dev/envs/django/Lib/site-packages
    #添加wsgi的读取权限
    <Directory E:/git/python_dev/python_study_case/django/mydjangosite/mydjangosite>
         <Files wsgi.py>
              Order deny,allow
              Require all granted
         </Files>
    </Directory>
     
    #这里声明静态文静的映射,这个/static是给django admin的静态文件使用的
    Alias /static "C:/Python33/Lib/site-packages/django/contrib/admin/static"
    #这里是添加文件夹的读取权限,注意apache2.3以上的读写设置与2.3以下版本有所不同
    <Directory "C:/Python33/Lib/site-packages/django/contrib/admin/static/"> 
        <IfVersion < 2.3 >
            Order allow,deny
            Allow from all
        </IfVersion>
        <IfVersion >= 2.3>
            Require all granted
        </IfVersion> 
    </Directory>
     
    4、启动apache
    打开cmd,定位到apache安装目录下面的bin目录,输入httpd就可以启动服务器了,此时你就可以在你的浏览器中访问localhost了
     
    5、需要改进的地方
    因为工作中使用的是asp.net,对apache不熟,所以对虚拟主机的配置以及mod_wsgi的运行模式的理解还不是特别透彻,也是下一步需要学习的方向。
     
    6、致谢与参考
    首先感谢那些为提供这些优秀开源工程的程序员们;其次在学习如何部署的过程中,下面两篇文章对我的帮助很大,在这里再次说声谢谢!
     
    7、最后
    如果你觉得这篇文章对你比较有帮助,或者有什么问题,亦或你想给我介绍一份工作,欢迎给我留言或者email:liulixiang1988@gmail.com 
  • 相关阅读:
    极光推送的设备唯一性标识 RegistrationID
    排行榜算法设计实现比较 排序树 平衡二叉树
    UCloud首尔机房整体热迁移是这样炼成的
    from appium import webdriver 使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)
    客户续费模型 逻辑回归 分类器 AdaBoost
    推举算法 AdaBoost 哥德尔奖 Godel Prize
    基于 redis 的分布式锁实现 Distributed locks with Redis debug 排查错误
    Django’s cache framework
    随机森林算法预测法官判决
    时间特征正弦化
  • 原文地址:https://www.cnblogs.com/liulixiang/p/3543021.html
Copyright © 2020-2023  润新知