转载注明出处,个人博客:http://www.cnblogs.com/wdfwolf3/
  Django首要的部署平台是WSGI,它是Python Web服务器和应用的标准。使用Apache和mod_wsgi部署Django是一个使Django投入到生产环境中成熟的方式,mod_wsgi是一个Apache模块,它可以host任何Python WSGI应用。其他知名的模块如mod_python和FastCGI,mod_python在Django1.5中被彻底删除,FastCGI也不被支持并且在Django1.9中被删除。下面我们开始进行配置。

1.

从路径/etc/apache2/下,打开文件apache2.conf,并加入下列代码。第一行的第一个路径为的基础URL路径,第二个路径为你项目wsgi.py文件的完全路径,这句话告诉Apache使用这个WSGI应用来响应这个URL下的任何请求。第二行为项目的路径,确保你的项目可以被正确导入,第三行为wsgi.py所在文件夹的路径,Directory部分是用来使Apache可以定位到wsgi.py文件。如果Apache版本低于2.4的话,将Require all granted替换为Allow from all并在它上面一行加入Order deny,allow。

WSGIScriptAlias / "/home/wdf/mysite/mysite/wsgi.py"
WSGIPythonPath /home/wdf/mysite <Directory /home/wdf/mysite/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

2.

如果从调试环境变为生产环境的话,还需要将DEBUG从True变为False。此时无法像之前那样使用127.0.0.1打开网页,需要更改一下项目的settings文件,打开django项目中的settings.py文件,加入下面这行代码,

ALLOWED_HOSTS = ['127.0.0.1']

列表中再加入一项‘localhost'也可以用来调试。

3.

如果启动Apache(命令sudo service apache2 start)报错,

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, 
using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

那就在配置文件apache2.conf中加入下面这行代码,

ServerName localhost

默认端口80,可以不写。

4.Apache错误日志error.log

此时我打开网页依然不能访问到我django项目,Apache正常启动没问题,那就需要打开错误日志文件/var/log/apache2/error.log(如果路径不同通过http://www.cnblogs.com/wdfwolf3/p/5438379.html的方法寻找),发现了如下错误,

[Wed Apr 27 11:30:42.632076 2016] [:error] [pid 10808:tid 140055750682368] [client ::1:60449] 
SyntaxError: Non-ASCII character '\\xe5' in file /home/wdf/code/mysite/mysite/wsgi.py on line 15,
but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

这个比较常见了,编码问题,我们回到wsgi.py文件中,文件开头加入代码即可解决。

#-*- coding:ut-8 -*-

5.配置静态文件static

Django本身不能处理文件,它把这个工作交给了它使用的Web服务器,在这里我们就是用Apache来处理静态文件。网络上很多方法,但是版本比较靠前,也比较杂,我针对1.9的官方文档和自己的实践来简单实现显示静态图片,至于更深入的内容以后我实现了再继续更新。

在apache2.conf中加入代码,同上面如果Apache版本低于2.4换成另外两行代码。

Alias /abc/ /home/wdf/mysite/app/static/

<Directory /home/wdf/mysite/app/static>
Require all granted
</Directory>

在这里声明别名/abc/就是你存放静态文件的目录,之所以使用abc(正常设置成/static/就很好)这么没有意义的名字,是为了说明后面的东西,防止混淆。在html模板中图片的地址就可以使用这个别名,比如

<img src="/abc/WDF.JPG" />

当然在项目的settings.py文件中还要加一个定义,将static目录的路径赋给STATIC_URL

STATIC_URL = os.path.join(BASE_DIR, '/app/static/')

  

Ubuntu1404+Django1.9+Apache2.4部署配置2配置文件设置的更多相关文章

  1. Ubuntu1404+Django1.9+Apache2.4部署配置1安装

    关于Ubuntu环境下的文章很少,搜索一些问题比较麻烦,这里将别人的做法和自己做的整合一下.这篇文章主要讲解基础的安装,至于Django1.9如何部署到Apache2.4请转到下一篇博文http:// ...

  2. Ubuntu16.04 apache2 wsgi 部署django

    在Ubuntu16.04上部署django其实还算简单直观,最重要的问题就是路径设置正确,并且保证版本统一,这个测试是在 Apache/2.4.18 (Ubuntu)  apt-get install ...

  3. linux后台server开发环境的部署配置和验证(nginx+apache+php-fpm+FASTCGI(C/C++))

    linux后台server开发环境部署配置 引言 背景 随着互联网业务的不断增多.开发环境变得越来越复杂,为了便于统一server端的开发部署环境,特制定本配置文档. 使用软件 CentOS 6.3( ...

  4. nagios部署配置流程

    nagios部署配置流程 nagios服务端:1.部署nagios服务端(参考nagios官方部署文档).nagios-plugin.php.apache2 2.需要在服务端添/etc/hosts中添 ...

  5. Jenkins部署配置简介

    前段时间研究了一下自动化测试,因而接触到了Jenkins,今天有时间进行一下Jenkins部署配置相关知识的总结分享 前言:由于本次只是实验性研究,采用Windows环境,因此Jenkins可以通过下 ...

  6. Apache2.4部署django出现403 Forbidden错误解决办法

    前言:Apache2.4部署django出现403 Forbidden错误最好要结合apache中的错误日志来观察出现何种错误导致出现403错误 下午百度了一下午没找到解决办法,试了n种方法,简直坑爹 ...

  7. TOMCAT的安装部署配置(配图解)

    TOMCAT的安装部署配置 前提已经成功搭建配置JDK 下载好压缩包后,直接解压至某一目录下,目录中不能包含中文 双击安装文件,出现如下界面 点击[NEXT],出现如下界面 点击[I AGREE],出 ...

  8. PL/SQL安装部署配置(配图解)

    PL/SQL安装部署配置 下载好安装包之后,双击exe程序 双击安装程序,出现如下页面 点击[NEXT],出现如下界面 选择[I Accept...],点击[NEXT],出现如下界面 选择安装路径,点 ...

  9. 【环境配置】php5.5 + apache2.4 安装配置【转+修改】

    转自 http://my.oschina.net/lilinzero/blog/180509 [转+修改][环境配置]php5.5.10 + apache2.4 安装配置 根据自己的实践所得,稍微修改 ...

随机推荐

  1. PCB覆铜时的安全距离

    覆铜的安全间距(clearance)一般是布线的安全间距的二倍.但是在没有覆铜之前,为布线而设置好了布线的安全间距,那么在随后的覆铜过程中,覆铜的安全间距也会默认是布线的安全距离.这样与预期的结果不一 ...

  2. 【基于spark IM 的二次开发笔记】第二天 树形结构

    MessageTreePlugin.java final MessageTreeTab messageTreeTab = new MessageTreeTab(); /** * Adds a tab  ...

  3. 使用pupperlabs yum repo

    http://docs.puppetlabs.com/guides/puppetlabs_package_repositories.html

  4. Git(一)环境搭建 + 常用命令

    上周研究了一下 Git,简单的使用了一下,个人感觉相对 SVN 来说还是有一定学习成本的,这次记录一些自己的学习过程以及常用的命令. 在学习的过程中,同事推荐了一个前辈写的教程([传送门]:Git教程 ...

  5. Datediff函数 助你实现不同进制时间之间的运算

    在VB开发环境中实现时间之间的加减运算有很多种方法,前不久自己无意中发现了Datediff函数,它能够比较简单.全面地实现我们比较常用的时间之间的运算,今由自己的研究,搞清了它的一些用法,拿来和大家分 ...

  6. Kerberos认证流程详解

    Kerberos是诞生于上个世纪90年代的计算机认证协议,被广泛应用于各大操作系统和Hadoop生态系统中.了解Kerberos认证的流程将有助于解决Hadoop集群中的安全配置过程中的问题.为此,本 ...

  7. 格式化日期时间字符串 Get-Date -Uformat , -format

    #将字符串格式化为时间格式 $dateTimeStr = '20141231T23:59:59' $format = 'yyyyMMddTHH:mm:ss' $formatProvider = [Gl ...

  8. ACM 关于数据输入加速

    转载请注明出处:http://blog.csdn.net/a1dark 分析:我们都知道运行时间对我们来说很重要.有时候不惜用大量的内存去换取一点时间.有些人可能都比较关注这个问题.首先时间上:cin ...

  9. LabVIEW系列——生产现场故障邮件通知

    第一步.建立邮件服务器,winmail做邮件服务器是个不错的选择.不过在使用前需要注册. 第二步.创建修改域名.这里创建的域名不是真正的域名,只能用于局域网内.假设:lhy.com.cn 第三步.创建 ...

  10. Java基础知识强化之集合框架笔记50:Map集合之Map集合的概述和特点

    1. Map集合的概述: public interface Map<K,V> 作为学生来说,是根据学号来区分不同的学生的,那么假设我现在已经知道了学生的学号,我要根据学号去获取学生姓名,请 ...