Apache如何部署django项目

yipeiwu_com5年前Python基础

在此之前,我们一直使用django的manage.py 的runserver 命令来运行django应用,但这只是我们的开发环境,当项目真正部署上线的时候这做就不可行了,必须将我们的项目部署到特定的web服务器上。

安装apache

Apache是非常有名的web服务器软件,如果想让我们web项目运行几乎离不开它。

Apache官方网站:http://httpd.apache.org/

根据自己的环境,选择相应的版本进行下载。apache 官网没有windows 64位版本,可以通过下面的链接进行下载:win7 64位:http://www.apachelounge.com/download/win64/

下载安装完成,apahche的目录结构如下:

修改conf/httpd.conf文件:

……
ServerRoot "D:/pydj/Apache24"
……
Listen 127.0.0.1:8089  #修改端口号
……
ServerName www.example.com:8089  
……
DocumentRoot "D:/pydj/Apache24/htdocs"
<Directory "D:/pydj/Apache24/htdocs">
……
ScriptAlias /cgi-bin/ "D:/pydj/Apache24/cgi-bin/"
……
<Directory "D:/pydj/Apache24/cgi-bin">
  AllowOverride None
  Options None
  Require all granted
</Directory>
…… 

主要就是路径和端口号的修改,如果你在启动apache的httpd.exe程序时一闪就没了,请检查这些配置。

启动bin/httpd.exe程序

通过浏览器访问:http://127.0.0.1:8089/

现在可以说明apache工作是正常的了。 

安装mod_wsgi

  The aim of mod_wsgi is to implement a simple to use Apache module which can host any Python application which supports the Python WSGI interface. 

The module would be suitable for use in hosting high performance production web sites, as well as your average self managed personal sites running on  web hosting services.

(mod_wsgi的目的是实现一个简单的使用Apache模块可以举办任何Python应用程序支持Python的WSGI接口。该模块将适用于主机的高性能生产的网站,以及一般的自我管理个人网站的网页寄存服务运行。)直接google翻译的,凑合的大概理解是干啥用的。

mod_wsgi网站:http://code.google.com/p/modwsgi/

下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/

如win7 64位、python 2.7.6、apache(httpd-2.4.10)对应版本为:mod_wsgi-3.5.ap24.win-amd64-py2.7.zip

解压之后将得到一个mod_wsgi.so 文件,将其拷贝到Apache24\modules\ 目录下。

配置apache和django项目

因为你的目录一定和我的一样,所以,我再强调一下我的目录:

apache 存放目录:D:\pydj\Apache24

django项目目录:D:\pydj\myweb

再次打apache的配制文件httpd.conf:

……
#添加mod_wsgi.so 模块
LoadModule wsgi_module modules/mod_wsgi.so
#指定myweb项目的wsgi.py配置文件路径
WSGIScriptAlias / D:/pydj/myweb/myweb/wsgi.py
#指定项目路径
WSGIPythonPath D:/pydj/myweb

<Directory D:/pydj/myweb/myweb>
<Files wsgi.py>
  Require all granted
</Files>
</Directory> 

上面的路径,请根据自己的实际情况进行修改。

下面配置myweb/wsgi.py文件:

……
import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myweb.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application() 

在我们生成djnago项目时这些信息已经自动生成,其实我们不用对其做任何修改。

打开settings.py文件添加:

……
ALLOWED_HOSTS = ['127.0.0.1', 'localhost'] 

再次启动Apache24/bin/httpd.exe程序

通过浏览器访问:http://127.0.0.1:8089/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Django框架orM与自定义SQL语句混合事务控制操作

本文实例讲述了Django框架orM与自定义SQL语句混合事务控制操作。分享给大家供大家参考,具体如下: 用单纯的ORM 或者单纯的自定义SQL语句,都比较好控制事务。在前面的一篇文章中...

python中字符串变二维数组的实例讲解

python中字符串变二维数组的实例讲解

有一道算法题题目的意思是在二维数组里找到一个峰值。要求复杂度为n。 解题思路是找田字(四边和中间横竖两行)中最大值,用分治法递归下一个象限的田字。 在用python定义一个二维数组时可以...

Python基于pygame实现图片代替鼠标移动效果

Python基于pygame实现图片代替鼠标移动效果

本文实例讲述了Python基于pygame实现图片代替鼠标移动效果。分享给大家供大家参考,具体如下: 想想现在学校pygame有几个钟了,就写了一个小程序:图片代替鼠标移动 程序的运行效...

使用python实现baidu hi自动登录的代码

复制代码 代码如下:# _*_ coding:utf-8 _*_# name login_baidu.pyimport urllib,urllib2,httplib,cookielibd...

python 如何去除字符串头尾的多余符号

在读文件时常常得到一些\n和引号之类的符号,可以使用字符串的成员函数strip()来去除。 1.去除首尾不需要的字符 a= '"This is test string"' #...