设为首页 收藏本站
查看: 914|回复: 0

[经验分享] Windows环境下,将Django部署到Apache Web Server

[复制链接]

尚未签到

发表于 2015-8-2 11:45:23 | 显示全部楼层 |阅读模式
  在Windows上部署Django(用mod_wsgi)会出现各种奇怪的问题,现简单记录下配置过程及遇到的错误及解决方法。
  环境搭建                                                   
  windows 7
  python 2.7.3 (注意最好是32位的,因为Apache目前对64位支持非常不友善,尝试了好多次,64位的太高大上,众多不兼容)
  Apache2.2.10 (直接下载apache_2.2.10-win32-x86-no_ssl.msi就行)
  Django-1.6.1 (官网下载)
  配置思路                                                   
  1、配置apache的httpd.conf文件
  2、配置django相关配置文件
  配置过程                                               
  其实配置生效针对不同的环境有不同的细节需要处理,网上的方案(包括本篇)都不是一定通用的,只是在某种环境下有效,但总体思路就是配置上述提及的两个配置文件。
  部署django项目常用的两个方式是使用mod_python和mod_wsgi两种部署方式,这里我使用的是mod_wsgi。
  1、先去网上下载个名叫这个的东西:mod_wsgi-3.4.ap22.win32-py2.7,里面有个文件是mod_wsgi.so,然后把这个copy到apache安装目录的modules文件下(默认安装目录是:C:\Program Files (x86)\Apache Software Foundation\Apache2.2\modules)
  下面两个配置中涉及路径的很容易搞错,如果是绝对路径的话要检查自己是否正确。
  2、在Django项目根目录下新建两个文件:
  django.wsgi:



#coding=utf-8
import os
import sys
import django.core.handlers.wsgi
os.environ['DJANGO_SETTINGS_MODULE'] = 'appops.settings'
app_apth = "D:/OPSAPP/appops"
sys.path.append(app_apth)
application = django.core.handlers.wsgi.WSGIHandler()

  apache_django_wsgi.conf:



#Alias / D:/OPSAPP/appops
Alias /favicon.jpg D:/OPSAPP/appops/static/images/favicon.jpg
#WSGIScriptAlias /api "D:/OPSAPP/appops/appapi/handler.py"  #注意,这里在httpd.conf中写过的话这里就不用写了。
WSGIScriptAlias / "D:/OPSAPP/django.wsgi"
WSGIPassAuthorization On

Order Deny,Allow
Allow from all

Alias /static/ D:/OPSAPP/appops/static/

Order deny,allow
Allow from all
IndexOptions FancyIndexing


Order deny,allow
Allow from all
IndexOptions FancyIndexing


Allow from all


  目录结构如下:
      DSC0000.jpg DSC0001.jpg
  3、编辑apache的配置文件httpd.conf(C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\httpd.conf)
  中间加上一句:
  LoadModule wsgi_module modules/mod_wsgi.so
  文件结尾新增下列配置:



Alias /static D:/OPSAPP/appops/static     #这是为了可以通过url来访问static文件

SetHandler None


                       #配置虚拟目录
ServerName app.ops.test.com
#ServerName 192.168.18.74
DocumentRoot D:/OPSAPP
WSGIScriptAlias / D:/OPSAPP/django.wsgi

Order deny,allow
Allow from all


Allow from all



    #这个一定需要,不然网页样式错误,css没有起作用
Order Deny,Allow
Allow from all


  
  重启下apache服务基本就OK了。
  常见错误                                                     
  访问失败时的错误会记录在apache日志里(C:\Program Files (x86)\Apache Software Foundation\Apache2.2\logs),
   1、静态资源不能访问,如css样式错乱等,需要在httpd.conf文件里增加配置:




Order deny,allow
Allow from all
IndexOptions FancyIndexing


  2、出现找不到模块的错,如no module named XXX等,主要有两个原因:
  1)、路径错了
  2)、文件命名跟Django或python内部模块冲突了
  
  
  参考:
  http://www.iyunv.com/zhengyun_ustc/archive/2006/11/20/django_apache_win32.html
  http://www.server110.com/apache/201309/1873.html
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-93284-1-1.html 上篇帖子: Apache的Access.log分析总结 下篇帖子: apache synapse使用(2)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表