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闭包的两个注意事项(推荐)
Mar 20 Python
python3之微信文章爬虫实例讲解
Jul 12 Python
Python微信公众号开发平台
Jan 25 Python
python实现朴素贝叶斯分类器
Mar 28 Python
Python浅复制中对象生存周期实例分析
Apr 02 Python
python通过微信发送邮件实现电脑关机
Jun 20 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
Python如何读取、写入JSON数据
Jul 28 Python
Python 实现一个计时器
Jul 28 Python
利用python如何实现猫捉老鼠小游戏
Dec 04 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
Jan 25 Python
python基础之while循环语句的使用
Apr 20 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
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
PHP单例模式模拟Java Bean实现方法示例
2018/12/07 PHP
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
js返回上一页并刷新代码整理
2012/12/21 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
深入理解Vue transition源码分析
2017/07/30 Javascript
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
Vuex的基本概念、项目搭建以及入坑点
2018/11/04 Javascript
详解js静态检查工具eslint配置文件
2018/11/23 Javascript
JavaScript中ES6规范中let和const的用法和区别
2020/08/06 Javascript
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
python根据文件大小打log日志
2014/10/09 Python
pygame播放音乐的方法
2015/05/19 Python
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
python查找重复图片并删除(图片去重)
2019/07/16 Python
学习Django知识点分享
2019/09/11 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
利用CSS3实现开门效果实例源码
2016/08/22 HTML / CSS
.net软件工程师面试题
2015/03/31 面试题
怎么写有吸引力的自荐信
2013/11/17 职场文书
经贸日语专业个人求职信
2013/12/13 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
小学远程教育工作总结
2015/08/13 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书
七年级作文之下雨天
2019/12/23 职场文书