Win7环境下Apache+mod_wsgi本地部署Django
django基础已经掌握的同学可以尝试将项目发布已寻找些许成就感,以鼓励自己接下来进行django的进阶学习
以前你总是使用python manage.py runserver进行服务启动,但是却不知:
- runserver是单线程服务,Apache支持多线程,性能不再一个等级
- runserver在debug模式下才能使用静态文件,而debug模式下运行会留存很多debug信息,时间长了内存爆炸
- runserver挂了就GG,但是Apache很稳定,就算挂了,也只挂掉wsgi线程
- runserver方便开发调试而产生,生产环境不可用
废话不多说,上干货(前提:python环境ok,django项目ok,本地可运行)
作者项目路径:F:/py_workspace/DJ/proj
Apache路径:E:\httpd-2.4.33-win64-VC15\Apache24
一、环境
二、Apache配置
- 点击下载,选择适合自己的Apache版本(32位/64位)下载,下载完成得到httpd-2.4.33-win64-VC15.zip。
- 解压后打开conf/httpd.conf配置文件,修改如下配置:
ServerRoot "E:\httpd-2.4.33-win64-VC15\Apache24"
Listen 192.168.200.235:8090
#ServerName 192.168.200.235:8090 #可以注释掉
DocumentRoot "E:\httpd-2.4.33-win64-VC15\Apache24\htdocs" #Apache路径下htdocs文件夹路径,下同
<Directory "E:\httpd-2.4.33-win64-VC15\Apache24\htdocs">
ScriptAlias /cgi-bin/ "E:\httpd-2.4.33-win64-VC15\Apache24\cgi-bin/" #Apache路径下cgi-bin文件夹的路径,下同
<Directory "E:\httpd-2.4.33-win64-VC15\Apache24\cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
在Apache的bin路径下运行:httpd.exe,出现Apache控制台,访问localhost:8090,出现 It works 说明Apache服务启动成功。
或者在httpd.exe所在路径下shift+邮件选择在此处打开命令窗口(CMD),键入:httpd.exe -k start 同样可以启动Apache服务。
想要查看Apache服务,右击我的电脑,选择管理,查看服务即可。
三、mod_wsgi配置
- 点击下载,将下载成功的压缩包解压,选择适合自己版本的so文件。
- 将so文件复制到Apache路径下的modules文件夹下即可。
- 将so文件放到指定位置后再次进行httpd.conf的项目和wsgi配置(直接在httpd.conf后面追加即可)。
#add mod_wsgi
LoadFile "c:/python27/python27.dll"
LoadModule wsgi_module modules/mod_wsgi-py27-VC9.so
WSGIPythonHome "c:/python27" WSGIScriptAlias / F:/py_workspace/DJ/proj/proj/wsgi.py WSGIPythonPath F:/py_workspace/DJ/proj/ <Directory F:/py_workspace/DJ/proj/proj>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
配置完成后再次启动Apache服务,访问localhost:8090即可看到Django web项目的页面了。
四、静态文件配置
同样是在httpd.conf配置文件后面追加即可。
#Alias /static F:/py_workspace/DJ/proj/static
#<Directory F:/py_workspace/DJ/proj/static>
# AllowOverride None
# Options None
# Require all granted
#</Directory> #Alias /media F:/py_workspace/DJ/proj/media
#<Directory F:/py_workspace/DJ/proj/media>
# AllowOverride None
# Options None
# Require all granted
#</Directory>
五、别忘了
修改django的settings配置:
DEBUG = False
Listen 192.168.200.235:8090 ALLOWED_HOSTS = ['*']
这样配置,局域网内的小伙伴就可以访问到你的Django Web项目了。
PS:因为在之前的httpd.conf配置中,已经配置listen为本机ip了,所以这里还是192xxx,有时候为了调试方便我们还在前面的listen中会配置ip为127.0.0.1:8090供自己调测使用,而不让局域网内的人访问。
六、Q&A
Q:启动Apache的时候提示:无法启动此程序,因为计算机中丢失VCRUNTIME140.dll 尝试重新安装此程序以解决此问题
A:安装Microsoft.Net.Framework 4.6.1,点击下载;安装Visual C++ Redistributable for Visual Studio 2015,点击下载。
Win7环境下Apache+mod_wsgi本地部署Django的更多相关文章
- windows下apache + mod_wsgi + python部署flask接口服务
windows下apache + mod_wsgi + python部署flask接口服务 用python3安装虚拟环境 为啥要装虚拟环境? 原因1:安装虚拟环境是为了使项目的环境和全局环境隔离开,在 ...
- 在windows上用apache+mod_wsgi服务部署django项目
之前一直在本地跑django项目,最近尝试在服务器上部署项目,目前已经成功部署,也花了好多时间,这里跟大家交流一下,希望对像我一样的新手有帮助. 一.配置环境: 1.Python版本3.7 2.服务器 ...
- 在ConoHa上Centos7环境下源码安装部署LNMP
本文记录了从源码,在Centos 7上手动部署LNMP环境的过程,为了方便以后对nginx和mariadb进行升级,这里采用yum的方式进行安装. 1.建立运行网站和数据库的用户和组 groupadd ...
- WIN7 环境下搭建 PHP7(64 位)操作步骤
WIN7 环境下搭建 PHP7(64 位)操作步骤 一.安装与配置 Apache 1.下载 Apache下载地址:https://www.apachelounge.com/download/ 2.安装 ...
- 【原创】K8S环境下研发如何本地调试?kt-connect使用详解
K8S环境下研发如何本地调试?kt-connect使用详解 背景 注:背景有点啰嗦,讲讲一路走来研发本地调试的变化,嫌烦的可以直接跳过,不影响阅读. 2019年 我在的公司当时是个什么情况,只有两个J ...
- WIN7环境下CUDA7.5的安装、配置和测试(Visual Studio 2010)
以下基于"WIN7(64位)+Visual Studio 2010+CUDA7.5". 系统:WIN7,64位 开发平台:Visual Studio 2010 显卡:NVIDIA ...
- Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本号的开发环境
写这篇博客时2D游戏引擎Cocos2d-x的最新版本号为2.1.4,记得非常久曾经使用博客园博主子龙山人的一篇博文<Cocos2d-x win7+vs2010配置图文具体解释(亲測)>成功 ...
- 【转】Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本的开发环境(亲测)
http://blog.csdn.net/ccf19881030/article/details/9204801 很久以前使用博客园博主子龙山人的一篇博文<Cocos2d-x win7+vs20 ...
- 编译mapnik(win7 环境下vs2008编译mapnik 0.7.1 成功)
编译mapnik(win7 环境下vs2008编译mapnik 0.7.1 成功) ------by wangsh 2012.02.22 Mapnik 是一个开源的 Python/C++ 地图渲染引 ...
随机推荐
- vue 手动挂载$mount() 获取 $el
手动挂载$mount() 如果没有挂载的话,没有关联的 DOM 元素.是获取不到$el的. https://vuejs.org/v2/api/#vm-mount var MyComponent = V ...
- webpack 通用环境快速搭建
能用babel编译es2015 . 能热编译.能加载静态资源(js/css/font/image).是一个很通用的开发环境,虽然不智能.但很好扩展 npm 安装列表: # webpack 核心 npm ...
- 利用Python对文件进行批量重命名——以图片文件为例
效果如下:0001号用户的第 i 张图片 代码: import os class ImageRename(): def __init__(self): self.path = 'C:/Users/lb ...
- linux 实时显示文件的内容
1. watch -n 1 aa.txt #每个1秒显示aa.txt的内容 2. tail -f ***.log Linux shell中有一个tail命令,常用来显示一个文件的最后n行文档内容 但 ...
- gm picture
console.log("ok") /*var images = require("images");var fs = require("fs&quo ...
- 基于Virtext6平台的GTX IP核基本设置说明
本工程基于以下条件使用: 板卡:DBF板v3.0 芯片型号:Virtex6 315T ISE版本:14.7 IP核版本: v6_gtxwizard : 1.12 一.IP核配置进行流程 第一页配置:线 ...
- multicast based on udp
1.概念 单播,是用于两个主机之间传送数据; 广播,是一个主机对局域网内的所有主机发送数据; 多播,又称为组播,它是对一组特定的主机通信. 将网络上同一类型业务逻辑上分组,只和组内的成员通信,其它主机 ...
- Pycharm上python unittest不执行"if __name__ == '__main__' "问题or选择非unittest run
转:http://www.cnblogs.com/csjd/p/6366535.html python unittest不执行"if __name__ == '__main__' " ...
- sql server 数据库基础知识(一)
主键(PrimaryKey):主键就是一个表中每个数据行的唯一标识.不会有重复值的列才能当主键.一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都要设定主键.SQLServer中生成GUID ...
- jquery中Uncaught TypeError: $(...).ajaxUpload is not a function(…)错误解决方法
错误原因:该函数不是jquery的核心函数,所以需要外部引入ajaxfileupload.js文件,可能是没有引入,或者引入的js文件互相冲突 解决方法:每次进入一个函数之前打印该函数所有的js文件, ...