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元祖与字典与集合的粗浅认识
Aug 23 Python
python使用socket创建tcp服务器和客户端
Apr 12 Python
Python针对给定列表中元素进行翻转操作的方法分析
Apr 27 Python
python hbase读取数据发送kafka的方法
Dec 27 Python
opencv python统计及绘制直方图的方法
Jan 21 Python
python opencv 二值化 计算白色像素点的实例
Jul 03 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
Sep 26 Python
Python使用tkinter模块实现推箱子游戏
Oct 08 Python
python实现超市管理系统(后台管理)
Oct 25 Python
解决numpy数组互换两行及赋值的问题
Apr 17 Python
python基于机器学习预测股票交易信号
May 25 Python
python中使用 unittest.TestCase单元测试的用例详解
Aug 30 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
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
WordPress 插件——CoolCode使用方法与下载
2007/07/02 Javascript
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
js用闭包遍历树状数组的方法
2014/03/19 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
jQuery Mobile页面返回不需要重新get
2016/04/26 Javascript
手机软键盘弹出时影响布局的解决方法
2016/12/15 Javascript
深入理解js 中async 函数的含义和用法
2018/05/13 Javascript
vue中的数据绑定原理的实现
2018/07/02 Javascript
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
2019/05/14 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
2018/01/05 Python
查看django执行的sql语句及消耗时间的两种方法
2018/05/29 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
2018/10/26 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
浅析Django中关于session的使用
2019/12/30 Python
关于Tensorflow 模型持久化详解
2020/02/12 Python
python学习笔记之多进程
2020/08/06 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
Lulu & Georgia官方网站:购买地毯、家具、抱枕、壁纸、床上用品等
2018/03/19 全球购物
马德里著名的运动鞋商店:NOIRFONCE
2019/04/12 全球购物
个人简历自我鉴定
2013/10/11 职场文书
实习护士自我鉴定
2013/10/13 职场文书
《胡杨》教学反思
2014/02/16 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书
水知道答案观后感
2015/06/08 职场文书
小平小道观后感
2015/06/09 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
Java无向树分析 实现最小高度树
2022/04/09 Javascript