Django1.7+Apache2.4部署

    本人也是刚接触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_wsgipython
1.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:80
Listen 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 = False

ALLOWED_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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值