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 ...
随机推荐
- 运行 Spring Boot 应用的 3 种方式
今天介绍 3 种运行 Spring Boot 应用的方式,看大家用过几种? 你所需具备的基础 什么是 Spring Boot? Spring Boot 核心配置文件详解 Spring Boot 开启的 ...
- aaa配置(第十三组)
拓扑 网络情况 A PING B A PING C PC-B PING PC-C 2.R1的配置 a.console线 R1(config)#username admin1 password Admi ...
- JS中部分不常用小功能记录
1.serializeArray()在表单中使用,必须在form标签中,需要手机的元素要有name属性.源生JS将对象转成json resulrMK = JSON.stringify(resulr ...
- python高级-面向对象(11)
一.面向过程和面向对象 面向过程:根据业务逻辑从上到下写代码 面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程 二.类和对象 1.类的概念 面向对象编程的 ...
- Jade —— 源于 Node.js 的 HTML 模板引擎
2013-12-11 发布 Jade —— 源于 Node.js 的 HTML 模板引擎 开源项目介绍 web 模板引擎 node.js jade 207.8k 次阅读 · 读完需要 69 分钟 ...
- ionic3 npm install cordova error syscall rename
突然出现cordova 不是内部或外部命令,也不是可运行的程序或批处理文件. 可是之前cordova安装后一直用的好好的啊,后来尝试重新安装cordova 出现这个错误.也尝试重新安装了最新版本的no ...
- Net使用RdKafka引发异常RdKafka.Internal.LibRdKafka 的类型初始值设定项引发异常
在Net中VS2015用RdKafka组件开发消息发布和消费,引发下面的异常 RdKafka.Internal.LibRdKafka 的类型初始值设定项引发异常System.TypeInitializ ...
- leetcode — permutations-ii
import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Source : https://o ...
- 【原创】uC/OS II 任务切换原理
今天学习了uC/OS II的任务切换,知道要实现任务的切换,要将原先任务的寄存器压入任务堆栈,再将新任务中任务堆栈的寄存器内容弹出到CPU的寄存器,其中的CS.IP寄存器没有出栈和入栈指令,所以只能引 ...
- ES6躬行记(9)——字符串
在介绍字符串之前,有必要先了解一点Unicode的基础知识,有助于理解ES6提供的新功能和新特性. 一.Unicode Unicode是一种字符集(即多个字符的集合),它的目标是涵盖世界上的所有字符, ...