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 getopt 参数处理小示例
Jun 09 Python
python使用append合并两个数组的方法
Apr 28 Python
django轻松使用富文本编辑器CKEditor的方法
Mar 30 Python
python3.4下django集成使用xadmin后台的方法
Aug 15 Python
Python实现的破解字符串找茬游戏算法示例
Sep 25 Python
用python写扫雷游戏实例代码分享
May 27 Python
Django 缓存配置Redis使用详解
Jul 23 Python
django 微信网页授权登陆的实现
Jul 30 Python
python实现在一个画布上画多个子图
Jan 19 Python
Python bytes string相互转换过程解析
Mar 05 Python
Python如何在bool函数中取值
Sep 21 Python
详解如何使用Pytest进行自动化测试
Jan 14 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操作流程
2006/10/09 PHP
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
利用中国天气预报接口实现简单天气预报
2014/01/20 PHP
php判断表是否存在的方法
2015/06/18 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
PHP number_format函数原理及实例解析
2020/07/14 PHP
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
2015/12/06 Javascript
jQuery ajax时间差导致的变量赋值问题分析
2016/01/22 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
2016/10/09 Javascript
JS常用算法实现代码
2016/11/14 Javascript
使用webpack打包后的vue项目如何正确运行(express)
2018/10/26 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
JavaScript计算正方形面积
2019/11/26 Javascript
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
python使用ctypes模块调用windowsapi获取系统版本示例
2014/04/17 Python
python快速查找算法应用实例
2014/09/26 Python
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
用django-allauth实现第三方登录的示例代码
2019/06/24 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
python实现简单成绩录入系统
2019/09/19 Python
python虚拟环境模块venv使用及示例
2020/03/04 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
结构和类有什么异同
2012/07/16 面试题
介绍一下JNDI的基本概念
2013/07/26 面试题
《列夫托尔斯泰》教学反思
2014/02/10 职场文书
销售岗位职责范本
2014/06/12 职场文书
个人批评与自我批评
2014/10/15 职场文书
销售开票员岗位职责
2015/04/15 职场文书
讲座新闻稿
2015/07/18 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL