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和MD5实现网站挂马检测程序
Mar 13 Python
Python3中简单的文件操作及两个简单小实例分享
Jun 18 Python
python导入csv文件出现SyntaxError问题分析
Dec 15 Python
pandas实现将dataframe满足某一条件的值选出
Jun 12 Python
python如何实现代码检查
Jun 28 Python
python3中替换python2中cmp函数的实现
Aug 20 Python
python数据预处理 :数据抽样解析
Feb 24 Python
使用Python三角函数公式计算三角形的夹角案例
Apr 15 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
Jun 03 Python
DataFrame 数据合并实现(merge,join,concat)
Jun 14 Python
PyTorch 中的傅里叶卷积实现示例
Dec 11 Python
Python面向对象之内置函数相关知识总结
Jun 24 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
2012/09/30 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
jQuery自定义事件的简单实现代码
2014/01/27 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
2016/05/17 Javascript
使用jQuery给input标签设置默认值
2016/06/20 Javascript
JavaScript中获取HTML元素值的三种方法
2016/06/20 Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
2017/01/10 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
2017/01/19 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
基于Vuejs的搜索匹配功能实现方法
2018/03/03 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
vue项目中实现缓存的最佳方案详解
2019/07/11 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
用python实现面向对像的ASP程序实例
2014/11/10 Python
Python 基础知识之字符串处理
2017/01/06 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
深入理解Django的中间件middleware
2018/03/14 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
python 字符串只保留汉字的方法
2018/11/16 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
Pytorch to(device)用法
2020/01/08 Python
台湾菁英交友:结识黄金单身的台湾人
2018/01/22 全球购物
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
教师应聘个人求职信
2013/12/10 职场文书
运动会广播稿200字(10篇)
2014/10/12 职场文书
工程技术员岗位职责
2015/04/11 职场文书
党章学习心得体会2016
2016/01/14 职场文书