Python-Django Win7上使用Apache24和mod_wsgi部署Django1.11应用程序
Win7上使用Apache24和mod_wsgi部署Django1.11应用程序
by:授客 QQ:1033553122
测试环境
win7 64
Django-1.11.4.tar.gz
下载地址:https://pan.baidu.com/s/1hsclV5y
httpd-2.4.23-win64.zip
下载地址1:https://www.apachelounge.com/download/VC10/
下载地址2:https://pan.baidu.com/s/1hsclV5y
Python 3.4.0
Apache24-win64-VC10|mod_wsgi-py34-VC10.so
下载地址:https://pan.baidu.com/s/1hsclV5y(链接包含不同版本的集合包)
软件包依赖VS2010

先决条件
注意,部署之前,必须先满足以下几个条件
1、位数要对。操作系统,安装的对应软件,要么统一32位,要么统一用64位,不要混用。
2、安装Python时选择为所有用户安装,而不是仅为安装python的用户安装。
3、使用相同Microsoft C/C++ 编译器编译的Apache和Python版本。
4、使用相同Microsoft C/C++ 编译器编译的Apache和mod_wsgi版本。
以下为Python版本和C/C++编译器的对应关系
Python 2.6 - VC9
Python 2.7 - VC9
Python 3.3 - VC10
Python 3.4 - VC10
以下为Apache版本和mod_wsgi版本的对应关系
Apache22-win32-VC9/modules/mod_wsgi-py26-VC9.so
Apache22-win32-VC9/modules/mod_wsgi-py27-VC9.so
Apache24-win32-VC9/modules/mod_wsgi-py26-VC9.so
Apache24-win32-VC9/modules/mod_wsgi-py27-VC9.so
Apache24-win32-VC10/modules/mod_wsgi-py33-VC10.so
Apache24-win32-VC10/modules/mod_wsgi-py34-VC10.so
Apache24-win64-VC10/modules/mod_wsgi-py33-VC10.so
Apache24-win64-VC10/modules/mod_wsgi-py34-VC10.so
参考链接:
https://github.com/GrahamDumpleton/mod_wsgi/blob/develop/win32/README.rst
部署操作
项目文件结构


解压httpd-2.4.23-win64.zip,取出其中的目录(例中Apache24),放到目标路径(不能有空格等),例中D:/Apache24
检查Apache版本是否正确
cd /d D:/Apache24/bin
httpd.exe -V
Server version: Apache/2.4.23 (Win64)
……
修改Apache配置
打开conf/httpd.conf文件,编辑,修改服务器根目录
ServerRoot "c:/Apache24" 改成 ServerRoot "d:/Apache24"
然后查找所有的 "c:/Apache24",全部改成 "d:/Apache24"
修改监听端口(可选,根据实际需要)
Listen 80 改成 Listen 8000
修改服务器名称(建议)
#ServerName www.example.com:80 改成 ServerName 192.168.1.101:80
注:这里我没有注册域名,直接改成了本机ip
去掉#注释,打开访问日志
CustomLog "logs/access.log" common
修改#LoadModule rewrite_module modules/mod_rewrite.so 为如下:
LoadModule rewrite_module modules/mod_rewrite.so
说明:加载重写模块,防止出现 The requested URL / was not found on this server的情况。
找到如下配置
AllowOverride none
Require all denied
修改为
AllowOverride ALL
Require all granted
说明:配置更改,以防止出现如下情形:
Forbidden
You don't have permission to access / on this server.
启动Apache
1)httpd.exe -k install -n Apache2.4
Installing the 'Apache2.4' service
The 'Apache2.4' service is successfully installed.
Testing httpd.conf....
Errors reported here must be corrected before the service can be started.
注:install:把Apache注册为Windows服务,反之 uninstall, -n 接服务名称
2) httpd.exe -k start
注:start 启动, stop 停止
浏览器访问


添加mod_wsgi.so模块
把mod_wsgi-py34-VC10.so重命名为mod_wsgi.so,放入D:\Apache24\modules目录下。
参考链接:
http://modwsgi.readthedocs.io/en/develop/
https://pypi.python.org/pypi/mod_wsgi
再次修改Apache 配置
打开conf/httpd.conf文件,编辑,在末尾添加一下内容:
LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias / D:/AutotestPlatform/AutotestPlatform/wsgi.py
WSGIPythonHome "D:/Program Files (x86)/python34"
WSGIPythonPath D:/AutotestPlatform/AutotestPlatform/website
Alias /static/ D:/AutotestPlatform/website/static/
<Directory D:/AutotestPlatform/website/static>
Require all granted
</Directory>
<Directory D:/AutotestPlatform/AutotestPlatform/website/>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
说明:
LoadModule 加载模块
WSGIScriptAlias 设置base URL, / 代表应用程序root url
WSGIPythonHome 设置python安装路径,
WSGIPythonPath 用于确保项目包可导入,即import AutotestPlatform 有效。
<Directory> 保证Apache可访问wsgi.py,及其它必要文件。
以下设置Apache通过mod_wsgi为静态资源服务
Alias /static D:/AutotestPlatform/AutotestPlatform/website/static/
<Directory D:/AutotestPlatform/AutotestPlatform/website/static>
Require all granted
</Directory>
注意:如果使用的apache低于2.4版本,修改Require all granted 为如下内容:
Order deny,allow
Allow from all
参考链接:
https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/modwsgi/
https://github.com/GrahamDumpleton/mod_wsgi/blob/develop/win32/README.rst
收集静态配置文件
1)修改应用的settings.py(例中为D:\AutotestPlatform\AutotestPlatform\settings.py)
STATIC_URL = '/static/' 改行下方新增如下内容:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
2)运行命令,收集静态文件到指定的static目录
cd /d D:\AutotestPlatform
python manage.py collectstatic
You have requested to collect static files at the destination
location as specified in your settings:
D:\AutotestPlatform\static
This will overwrite existing files!
Are you sure you want to do this?
Type 'yes' to continue, or 'no' to cancel: yes #输入yes,回车
完成后,把收集的静态文件都放到 D:\AutotestPlatform\static目录下
参考链接:
https://pypi.python.org/pypi/mod_wsgi
Django访问IP配置
修改应用的settings.py(例中为D:\AutotestPlatform\AutotestPlatform\settings.py),编辑,找到ALLOWED_HOSTS修改为如下值,其中192.168.1.101是Django所在主机ip,也就是客户端浏览器访问用的IP
ALLOWED_HOSTS = ['localhost','127.0.0.1','192.168.1.101']
修改wsgi.py
如下,新增带背景色内容,以解决找不到AutotestPlatform模块的问题
from django.core.wsgi import get_wsgi_application
import sys
sys.path.append('D:/AutotestPlatform/AutotestPlatform/')
sys.path.append('D:/AutotestPlatform/')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "AutotestPlatform.settings")
application = get_wsgi_application()
重启Apache并启动Django应用
D:\Apache24\bin>httpd.exe -k stop
The 'Apache2.4' service is stopping.
The 'Apache2.4' service has stopped.
D:\Apache24\bin>httpd.exe -k start
说明:到这一步,已经可以浏览器访问了,以下为了看对比效果,同时开启了Django
启动Django
python manage.py runserver 0.0.0.0:8001 --insecure
浏览器验证




Python-Django Win7上使用Apache24和mod_wsgi部署Django1.11应用程序的更多相关文章
- 使用Nginx+uwsgi在亚马逊云服务器上部署python+django项目完整版(二)——部署配置及相关知识
---恢复内容开始--- 一.前提: 1.django项目文件已放置在云服务器上,配置好运行环境,可正常运行 2.云服务器可正常连接 二.相关知识 1.python manage.py runserv ...
- Python - Django - 页面上展示固定的页码数
如果页数太多的话,全部显示在页面上就会显得很冗杂 可以在页面中显示规定的页码数 例如: book_list.html: <!DOCTYPE html> <html lang=&quo ...
- Python Django文件上传
文件保存本地 view视图 def update(request): if request.method =='GET': return render(request,'update.html') e ...
- python django 批量上传文件并绑定对应文件的描述
- Win7上IIS发布网站系统\部署项目
1.系统已经安装IIS,如果没有安装,请到[控制面板]→[程序]→[程序和功能]→[打开或关闭Windows功能],选中Internet 信息服务Web管理工具下面的所有选项,确定:如下图 2.发布文 ...
- CentOS 5系统安装Django、Apache 、mod_wsgi部署Python环境教程
Django,是一款针对Python环境的WEB开发框架,能够帮助我们构架快捷.简单的WEB框架设置,Django框架非常适合开发内容应用环境,所以在本文中,麦子将整理基于Centos系统部署安装Dj ...
- 使用Visual Studio 2017开发python,并在iis上部署Python Django
作为宇宙第一IDE,怎么可以不支持python开发呢? 1.Visual Studio Installer 扩展Python开发 开始菜单中打开Visual Studio Installer,点修改. ...
- python Django之文件上传
python Django之文件上传 使用Django框架进行文件上传共分为俩种方式 一.方式一 通过form表单进行文件上传 #=================================== ...
- [原创]win7环境下搭建eclipse+python+django开发环境
一)工具下载 a)eclipse(最新版4.3.1)官网下载地址 http://www.eclipse.org/downloads/ b)python (2.X版本)官网下载地址 http://pyt ...
随机推荐
- Aseprite入门教程
因为最近在学cocos2d-x和vs搭配做手机游戏开发,想自己做一些素材,所以找到了这款软件,Aseprite v1.1.12.刚安装上时也是不懂该怎么操作,随着逐渐地摸索,对初始的使用有了一些了解. ...
- Zookeeper 集群安装配置,超详细,速度收藏!
今天,栈长分享下 Zookeeper 的集群安装及配置. 下载 下载地址:http://zookeeper.apache.org/ 下载过程就不说了,我们下载了最新的zookeeper-3.4.11. ...
- netty中的传输
终于在课设的闲时间把netty实战的四五章给解决了 这里来记录一下第四章里面所讲的IO 首先说到IO,我想,必须要先了解阻塞,非阻塞,同步和异步这四个词 看到一个讲的很易懂的例子:https://ww ...
- C++版 - 剑指Offer 面试题45:圆圈中最后剩下的数字(约瑟夫环问题,ZOJ 1088:System Overload类似)题解
剑指Offer 面试题45:圆圈中最后剩下的数字(约瑟夫环问题) 原书题目:0, 1, - , n-1 这n个数字排成一个圈圈,从数字0开始每次从圆圏里删除第m个数字.求出这个圈圈里剩下的最后一个数字 ...
- JVM源码分析之SystemGC完全解读
JVM源码分析之SystemGC完全解读 概述 JVM的GC一般情况下是JVM本身根据一定的条件触发的,不过我们还是可以做一些人为的触发,比如通过jvmti做强制GC,通过System.gc触发,还可 ...
- Magicodes.NET框架之路——让Magicodes.NET帮你编写代码
时间总是过得很快,而我几乎没有时间来安安静静的写博客和完善文档.不过总算是框架在一直前进,而我的计划是在今年年底(公历)前,让此框架成熟稳定. 在很长一段时间里,我尝试了很多我之前没有接触的技术或者没 ...
- python基本操作
创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...
- Mybatis学习(一)—————mybatis入门
学习了hibernate这个持久层框架之后,在来学习Mybatis简直是无压力,因为Mybatis入门门栏很低,如果学习过了hibernate的话,对于Mybatis的学习很简单了,如果没学习过hib ...
- 南大算法设计与分析课程OJ答案代码(5)--割点与桥和任务调度问题
问题 A: 割点与桥 时间限制: 1 Sec 内存限制: 5 MB提交: 475 解决: 34提交 状态 算法问答 题目描述 给出一个无向连通图,找到所有的割点和桥 输入 第一行:点的个数,如果点 ...
- Python进阶笔记
列表生成式 函数的参数类型 lambda函数 map, reduce, filter, sorted函数 eval, exec, join, zip函数 itertools中的函数 copy与deep ...