Apache部署Django项目图文详解


Posted in Python onJuly 30, 2019

前言

Django项目本身就可以启动运行,为什么还需要部署到Apache或者Nginx上呢?初学者都会遇到这个问题,我们来看看官方解释:It's intended only for use while developing. (We're in the business of making Web frameworks, not Web servers.),意思是django的业务是制作Web框架,而不是Web服务器。自带的web server只是方便开发,并不能直接放到生产环境,有兴趣的同学可以自己测试两者性能上的差距。 言归正传,我们这里主要讲述如何搭建Apache环境。

安装Apache

Apache(win 64)下载:https://www.apachehaus.com/cgi-bin/download.plx#APACHE24VC09

1.解压缩,修改Apache24\conf\httpd.conf 文件中的apache路径和端口:

......
Define SRVROOT "E:/Apache24"  
ServerRoot "${SRVROOT}"
......

#Listen 12.34.56.78:80
Listen 8088
......

ServerName localhost:8088
......

2.打开E:\Apache24\bin\httpd.exe,在浏览器输入http://127.0.0.1:8088/ 出现welcome页面代表成功。

Apache部署Django项目图文详解

mod_wsgi 模块下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi

1.把whl文件改成zip,解压缩,把里面的mod_wsgi.so拷贝到E:\Apache24\modules路径下,httpd.conf 中新增一段配置:

#添加mod_wsgi.so 模块 
LoadModule wsgi_module modules/mod_wsgi.so

若mod_wsgi解压后找不到mod_wsgi.so文件(如有跳过此步骤)

运行cmd,进入Scripts目录执行安装操作:

pip3 install mod_wsgi-4.5.17+ap24vc10-cp34-cp34m-win_amd64.whl

在Scripts目录执行:mod_wsgi-express module-config

Apache部署Django项目图文详解

把三行内容复制到httpd.conf:

#添加mod_wsgi.so 模块 
LoadFile "c:/python34/DLLs/python3.dll"
LoadModule wsgi_module "c:/python34/lib/site-packages/mod_wsgi/server/mod_wsgi.pyd"
WSGIPythonHome "c:/python34"

配置Apache与Django

1.打开Apache配置文件 httpd.conf,在末尾增加一段配置:

#添加mod_wsgi.so 模块 
LoadFile "c:/python34/DLLs/python3.dll"
LoadModule wsgi_module "c:/python34/lib/site-packages/mod_wsgi/server/mod_wsgi.pyd"
WSGIPythonHome "c:/python34"
 
#指定myweb项目的wsgi.py配置文件路径 
WSGIScriptAlias / D:/mysite/mysite/wsgi.py 
 
#指定项目路径 
WSGIPythonPath D:/mysite 
 
<Directory D:/mysite/mysite> 
<Files wsgi.py> 
  Require all granted 
</Files> 
</Directory> 
 
Alias /static D:/mysite/static  
<Directory D:/mysite/static>  
  AllowOverride None 
  Options None 
  Require all granted 
</Directory>

2.打开django项目setting配置:

DEBUG = False
ALLOWED_HOSTS = ['127.0.0.1','localhost'] #允许访问的ip。也可以用'*'表示,代表不受限制

重启bin\httpd.exe,输入URL

Apache部署Django项目图文详解

测试OK

3.将Apache安装成windows server,就不需要每次打开httpd.exe出现一个小黑框了。

bin目录下运行cmd命令httpd -k install -n “服务名” (不加参数,默认Apache2.4)

Apache部署Django项目图文详解

运行apache:net start apache2.4

停止apache:net stop apache2.4

删除apache:sc delete Apache2.4

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python获取网页状态码示例
Mar 30 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 Python
Python 中的range(),以及列表切片方法
Jul 02 Python
PyTorch的SoftMax交叉熵损失和梯度用法
Jan 15 Python
Python安装whl文件过程图解
Feb 18 Python
python微信公众号开发简单流程实现
Mar 09 Python
python为什么会环境变量设置不成功
Jun 23 Python
python实现图书馆抢座(自动预约)功能的示例代码
Sep 29 Python
python中numpy数组与list相互转换实例方法
Jan 29 Python
python网络爬虫实现发送短信验证码的方法
Feb 25 Python
如何利用python实现列表嵌套字典取值
Jun 10 Python
Python 使用list和tuple+条件判断详解
Jul 30 #Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 #Python
Python实现二叉搜索树BST的方法示例
Jul 30 #Python
django 基于中间件实现限制ip频繁访问过程详解
Jul 30 #Python
python3安装crypto出错及解决方法
Jul 30 #Python
Django框架组成结构、基本概念与文件功能分析
Jul 30 #Python
Python实现性能自动化测试竟然如此简单
Jul 30 #Python
You might like
php使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
PHP编译安装时常见错误解决办法
2015/05/28 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
2016/11/28 PHP
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
javascript 页面划词搜索JS
2009/09/28 Javascript
javascript中的作用域scope介绍
2010/12/28 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
2013/02/02 Javascript
[将免费进行到底]在Amazon的一年免费服务器上安装Node.JS, NPM和OurJS博客
2014/08/18 Javascript
jQuery实现平滑滚动的标签分栏切换效果
2015/08/28 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
Javascript随机标签云代码实例
2016/06/21 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
JS设计模式之数据访问对象模式的实例讲解
2017/09/30 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
JavaScript中工厂函数与构造函数示例详解
2019/05/06 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
Python内建模块struct实例详解
2018/02/02 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
python实现简单多人聊天室
2018/12/11 Python
python模拟鼠标点击和键盘输入的操作
2019/08/04 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
Python求解正态分布置信区间教程
2019/11/20 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
CSS3教程(5):网页背景图片
2009/04/02 HTML / CSS
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
工商管理系学生的自我评价分享
2013/11/29 职场文书
《诺贝尔》教学反思
2014/02/17 职场文书
车间安全生产标语
2014/06/06 职场文书
2019财务毕业实习报告
2019/06/27 职场文书
如何撰写促销方案?
2019/07/05 职场文书