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编程实现语音控制电脑
Apr 01 Python
python学习笔记:字典的使用示例详解
Jun 13 Python
python中Genarator函数用法分析
Apr 08 Python
python魔法方法-属性访问控制详解
Jul 25 Python
python win32 简单操作方法
May 25 Python
Python如何抓取天猫商品详细信息及交易记录
Feb 23 Python
pandas把dataframe转成Series,改变列中值的类型方法
Apr 10 Python
用python 实现在不确定行数情况下多行输入方法
Jan 28 Python
Python+OpenCv制作证件图片生成器的操作方法
Aug 21 Python
详解Python并发编程之创建多线程的几种方法
Aug 23 Python
Python jieba结巴分词原理及用法解析
Nov 05 Python
Pygame如何使用精灵和碰撞检测
Nov 17 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
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
php array_pop()数组函数将数组最后一个单元弹出(出栈)
2011/07/12 PHP
初品cakephp 入门基础
2012/02/16 PHP
laravel实现上传图片的两种方式小结
2019/10/12 PHP
QQ登录简单实现代码
2021/03/09 Javascript
JS解析XML的实现代码
2009/11/12 Javascript
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
jquery获取select选中值的方法分析
2015/12/22 Javascript
JS判断字符串字节数并截取长度的方法
2016/03/05 Javascript
vue源码中的检测方法的实现
2019/09/26 Javascript
js canvas实现俄罗斯方块
2020/10/11 Javascript
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
Python字符串格式化输出方法分析
2016/04/13 Python
浅谈python 线程池threadpool之实现
2017/11/17 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
总结python中pass的作用
2019/02/27 Python
Python利用PyExecJS库执行JS函数的案例分析
2019/12/18 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
Python常用库Numpy进行矩阵运算详解
2020/07/21 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
俄罗斯在线大型超市:ТутПросто
2021/01/08 全球购物
数百万免费的图形资源:Freepik
2020/09/21 全球购物
金融专业个人的自我评价
2013/10/18 职场文书
司法局火灾防控方案
2014/06/05 职场文书
国际贸易毕业生求职信
2014/07/20 职场文书
交通安全责任书范本
2014/07/24 职场文书
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
运动会广播稿300字
2015/08/19 职场文书
golang在GRPC中设置client的超时时间
2021/04/27 Golang
Python爬虫 简单介绍一下Xpath及使用
2022/04/26 Python