Apache如何部署django项目


Posted in Python onMay 21, 2017

在此之前,我们一直使用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的目录结构如下:

Apache如何部署django项目

修改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如何部署django项目

现在可以说明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/#mod_wsgi

如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/

Apache如何部署django项目

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
Apr 25 Python
剖析Python的Tornado框架中session支持的实现代码
Aug 21 Python
Python正则表达式使用经典实例
Jun 21 Python
python图片验证码生成代码
Jul 02 Python
python运行其他程序的实现方法
Jul 14 Python
Python实现mysql数据库更新表数据接口的功能
Nov 19 Python
解决python3读取Python2存储的pickle文件问题
Oct 25 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
详解Django admin高级用法
Nov 06 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
Apr 14 Python
多个版本的python共存时使用pip的正确做法
Oct 26 Python
python使用mysql数据库示例代码
May 21 #Python
Python实现一个转存纯真IP数据库的脚本分享
May 21 #Python
Python学习小技巧之利用字典的默认行为
May 20 #Python
Python学习小技巧之列表项的排序
May 20 #Python
Python学习小技巧之列表项的推导式与过滤操作
May 20 #Python
Python yield 使用方法浅析
May 20 #Python
Python学习小技巧之列表项的拼接
May 20 #Python
You might like
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
详解WordPress中添加友情链接的方法
2016/05/21 PHP
PHP实现负载均衡下的session共用功能
2018/04/17 PHP
Laravel框架实现多数据库连接操作详解
2019/07/12 PHP
php实现简易计算器
2020/08/28 PHP
js 判断脚本加载完毕的代码
2011/07/13 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
详解Vue基于 Nuxt.js 实现服务端渲染(SSR)
2018/04/05 Javascript
vue路由跳转传参数的方法
2019/05/06 Javascript
使用kbone解决Vue项目同时支持小程序问题
2019/11/08 Javascript
微信小程序wx.request的简单封装
2019/11/13 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
python 域名分析工具实现代码
2009/07/15 Python
python编写暴力破解FTP密码小工具
2014/11/19 Python
python实现图片彩色转化为素描
2019/01/15 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
Node.js 和 Python之间该选择哪个?
2020/08/05 Python
达拉斯牛仔官方商店:Dallas Cowboys Pro Shop
2018/02/10 全球购物
Java程序员面试题
2016/09/27 面试题
银行门卫岗位职责
2013/12/29 职场文书
私人会所最新创业计划书范文
2014/03/24 职场文书
经典演讲稿开场白
2014/08/25 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
听证通知书
2015/04/24 职场文书
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python
mysql全面解析json/数组
2022/07/07 MySQL