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之pandas用法大全
Mar 13 Python
python读取文件名称生成list的方法
Apr 27 Python
Python中几种属性访问的区别与用法详解
Oct 10 Python
Django csrf 两种方法设置form的实例
Feb 03 Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 Python
python使用正则来处理各种匹配问题
Dec 22 Python
python匿名函数lambda原理及实例解析
Feb 07 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
Feb 13 Python
python3 os进行嵌套操作的实例讲解
Nov 19 Python
Python提取PDF指定内容并生成新文件
Jun 09 Python
Python中OpenCV实现简单车牌字符切割
Jun 11 Python
python脚本框架webpy模板赋值实现
Nov 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 特殊字符处理函数
2008/09/05 PHP
基于PHP array数组的教程详解
2013/06/05 PHP
PHP中ini_set和ini_get函数的用法小结
2014/02/18 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
php实现的中文分词类完整实例
2017/02/06 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
js面向对象设计用{}好还是function(){}好(构造函数)
2011/10/23 Javascript
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
JS替换字符串中空格方法
2015/04/17 Javascript
JS集成fckeditor及判断内容是否为空的方法
2016/05/27 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
JS常用知识点整理
2017/01/21 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
Vue.js 动态为img的src赋值方法
2018/03/14 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
python二分法实现实例
2013/11/21 Python
python实现倒计时的示例
2014/02/14 Python
python实现的简单窗口倒计时界面实例
2015/05/05 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
Linux CentOS7下安装python3 的方法
2018/01/21 Python
Python Selenium Cookie 绕过验证码实现登录示例代码
2018/04/10 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
解析Python的缩进规则的使用
2019/01/16 Python
树莓派实现移动拍照
2019/06/22 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
Python实现图片添加文字
2019/11/26 Python
python excel和yaml文件的读取封装
2021/01/12 Python
医学院校毕业生自荐信范文
2014/01/01 职场文书
大学生求职工作的自我评价
2014/02/13 职场文书
甲午风云观后感
2015/06/02 职场文书
政审证明范文
2015/06/19 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang
JS + HTML 罗盘式时钟的实现
2021/05/21 Javascript