Django1.7+Apache2.4部署

来源:互联网 发布:懒人之家js特效怎么用 编辑:程序博客网 时间:2024/05/21 09:33

    本人也是刚接触Django,在遇到困难时在网上得到很多博客关于Django介绍的帮助,为了发扬分享的精神,特意记录一下关于Django1.7 +Apache2.4的部署过程

因为Django涉及到python、Django、Apache、mod_wsgi,所以关于版本的配合非常关键,我使用的版本分别如下:Django1.7+Apache2.4VC9+mod_wsgi‑4.4.9+python2.7+Windows7 版本说明DjangoApachemod_wsgipython1.72.4 VC94.4.92.7

本文假设已经在本机上实现了Django网站的搭建,所以python2.7和Django1.7的下载不说明,Django文档地址:Django文档说明


1、下载Apache2.4:

下载地址:点击打开链接,我下载的文档的具体地址:点击打开链接

Windows安装注意事项:点击打开链接,对Apache在Windows上安装做一些说明,可以忽略

我下载后的文档的名字:httpd-2.4.12-x86.zip

下载后把文档解压到:D:\Apache24,可以看到我的文件目录:



主要需要配置的文件:D:\Apache24\conf\httpd.conf,通过文档查找的方式查找需要修改的代码段,推荐使用notepad++

Define SRVROOT "D:/Apache24"ServerRoot "${SRVROOT}"
ServerName www.example.com:8086
#Listen 12.34.56.78:80Listen 127.0.0.1:8086

启动Apache的bin/httpd.exe程序,并浏览器访问:http://127.0.0.1:8086,会在浏览器上看到Apache的欢迎界面,这样Apache就初步配置完成


2、下载mod_wsgi:

下载地址:点击打开链接,选择灰色的那个版本:


whl是python打包的一个格式,把它改为zip就可以解压了,把里面的mod_wsgi.so拷贝到D:\Apache24\modules路径下


3、配置Apache与Django

重新打开D:\Apache24\conf\httpd.conf,在文档尾部添加了以下内容,主要是配置路径,告诉Apache关于Django的static的路径等

#添加mod_wsgi.so 模块LoadModule wsgi_module modules/mod_wsgi.so#指定myweb项目的wsgi.py配置文件路径WSGIScriptAlias / F:/Django_Project/qblog/qblog/wsgi.py#指定项目路径WSGIPythonPath F:/Django_Project/qblog<Directory F:/Django_Project/qblog/qblog><Files wsgi.py>    Require all granted</Files></Directory>Alias /static F:/Django_Project/qblog/static <Directory F:/Django_Project/qblog/static>     AllowOverride None    Options None    Require all granted</Directory> 
然后设置Django的setting.py文件:

修改以下内容:

...DEBUG = False TEMPLATE_DEBUG = FalseALLOWED_HOSTS = ['127.0.0.1', 'localhost']
重新启动Apache的bin/httpd.exe程序,打开浏览器,访问http://127.0.0.1:8086/看之前的Django网页是否出来了;

到这里,部署还没有结束,通常这样在admin上显示的页面无法加载部分css和背景图片等静态文件,这是因为Apache无法找到这些静态文件,因为它们不是在我们的项目中,而是在这里:D:\Python27\Lib\site-packages\Django-1.7.1-py2.7.egg\django\contrib\admin

4、收集静态文件

怎样把D:\Python27\Lib\site-packages\Django-1.7.1-py2.7.egg\django\contrib\admin文件拷贝到我们项目的static里面呢?手动拷贝是可以的,但这样不科学,可能还会遗漏其他app所需要的静态文件,例如我自己就还遗漏了django_markdown静态文件了,根据网络搜索,解决的方法是:

①修改配置setting.py文件,把STATIC_ROOT的注释去掉,然后把STATICFILES_DIRS的os.path.join(BASE_DIR, "static")注释掉。

STATIC_URL = '/static/'#STATIC_ROOT = os.path.join(BASE_DIR, "static")TEMPLATE_DIRS = (    os.path.join(BASE_DIR, "templates"), )STATICFILES_DIRS = (    os.path.join(BASE_DIR, "static"), )
修改后的效果是:

STATIC_URL = '/static/'STATIC_ROOT = os.path.join(BASE_DIR, "static")TEMPLATE_DIRS = (    os.path.join(BASE_DIR, "templates"), )STATICFILES_DIRS = (    #os.path.join(BASE_DIR, "static"), )

②在Django项目的根目录运行 cmd命令,收集到admin&django_markdown:

F:\Django_Project\qblog>python manage.py collectstatic





③把setting.py的上一步设置还原,重新运行Apache,是否可以看到调试时的效果了,enjoy it!!


PS:在配置Apache时,可以查看log文件,这样可以非常快的找出问题的原因,主要是两个log文件:access.log &error.log

参考文档:

虫师的博客:点击打开链接

dfg727的博客:点击打开链接


原创,转载请注明出处:yingmutongxue的博客:http://blog.csdn.net/yingmutongxue/article/details/43985559

蜗牛工作站:点击打开链接



1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 ck手表带了脱不下来怎么办 消毒柜开孔尺寸高度太高了怎么办 苏宁易购买的东西比专卖店贵怎么办 手机打字键盘上没有语音功能怎么办 网贷催收发语音侮辱人怎么办 康力无机房电梯到楼层不关门怎么办 档案工龄少算了工资领开了怎么办 别人骚扰我打电话报警人走了怎么办 因外借医保卡被香港保险拒保怎么办 医保和社保断了一个月怎么办 苹果8呼叫受限请勿越权使用怎么办 药物储存2~8度没冰箱怎么办 利仁分体电饼铛做饼熟的慢怎么办 闲鱼买的东西自提有问题怎么办 老板油烟机的表层的膜掉了怎么办 给老板打工老板跑路了怎么办 公司要业务员承担客户的欠款怎么办 从自己公司出去抢自己客户怎么办? 在苏宁买东西买贵了怎么办 苏宁购物小票不见了未提货怎么办 结痂的地方扣掉了颜色不一样怎么办 实体店买手机不给发票怎么办 小孩学英语字母怎么都记不住怎么办 聊客老是提示网络连接失败怎么办? 天猫购物漏发客服不理怎么办 京东二维码被骗怎么办联系客服号码 京东客服打电话来让自己退款怎么办 淘宝上买到的衣服是坏的怎么办 淘宝上买到的产品是坏的怎么办? 在淘宝买到东西是坏的怎么办 冰箱冷冻室门生锈变形关不严怎么办 诲信电冰箱电脑板坏了怎么办 冰箱里放了热水后就不制冷了怎么办 双温冰柜冷藏矿泉水不冰怎么办 美的电饭煲e一传感器也没坏怎么办 美的电饭煲不工作显示C3怎么办 美的电饭煲啪一声响不工作了怎么办 误给宝宝吃了坏的饭怎么办 鼠标没反应键盘指示灯不亮怎么办 新买变频冰箱风机声音大怎么办 三星手机玩王者荣耀一直闪退怎么办