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应用程序的更多相关文章

  1. 使用Nginx+uwsgi在亚马逊云服务器上部署python+django项目完整版(二)——部署配置及相关知识

    ---恢复内容开始--- 一.前提: 1.django项目文件已放置在云服务器上,配置好运行环境,可正常运行 2.云服务器可正常连接 二.相关知识 1.python manage.py runserv ...

  2. Python - Django - 页面上展示固定的页码数

    如果页数太多的话,全部显示在页面上就会显得很冗杂 可以在页面中显示规定的页码数 例如: book_list.html: <!DOCTYPE html> <html lang=&quo ...

  3. Python Django文件上传

    文件保存本地 view视图 def update(request): if request.method =='GET': return render(request,'update.html') e ...

  4. python django 批量上传文件并绑定对应文件的描述

  5. Win7上IIS发布网站系统\部署项目

    1.系统已经安装IIS,如果没有安装,请到[控制面板]→[程序]→[程序和功能]→[打开或关闭Windows功能],选中Internet 信息服务Web管理工具下面的所有选项,确定:如下图 2.发布文 ...

  6. CentOS 5系统安装Django、Apache 、mod_wsgi部署Python环境教程

    Django,是一款针对Python环境的WEB开发框架,能够帮助我们构架快捷.简单的WEB框架设置,Django框架非常适合开发内容应用环境,所以在本文中,麦子将整理基于Centos系统部署安装Dj ...

  7. 使用Visual Studio 2017开发python,并在iis上部署Python Django

    作为宇宙第一IDE,怎么可以不支持python开发呢? 1.Visual Studio Installer 扩展Python开发 开始菜单中打开Visual Studio Installer,点修改. ...

  8. python Django之文件上传

    python Django之文件上传 使用Django框架进行文件上传共分为俩种方式 一.方式一 通过form表单进行文件上传 #=================================== ...

  9. [原创]win7环境下搭建eclipse+python+django开发环境

    一)工具下载 a)eclipse(最新版4.3.1)官网下载地址 http://www.eclipse.org/downloads/ b)python (2.X版本)官网下载地址 http://pyt ...

随机推荐

  1. 运行 Spring Boot 应用的 3 种方式

    今天介绍 3 种运行 Spring Boot 应用的方式,看大家用过几种? 你所需具备的基础 什么是 Spring Boot? Spring Boot 核心配置文件详解 Spring Boot 开启的 ...

  2. aaa配置(第十三组)

    拓扑 网络情况 A PING B A PING C PC-B PING PC-C 2.R1的配置 a.console线 R1(config)#username admin1 password Admi ...

  3. JS中部分不常用小功能记录

    1.serializeArray()在表单中使用,必须在form标签中,需要手机的元素要有name属性.源生JS将对象转成json   resulrMK = JSON.stringify(resulr ...

  4. python高级-面向对象(11)

    一.面向过程和面向对象 面向过程:根据业务逻辑从上到下写代码 面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程 二.类和对象 1.类的概念 面向对象编程的 ...

  5. Jade —— 源于 Node.js 的 HTML 模板引擎

    2013-12-11 发布 Jade —— 源于 Node.js 的 HTML 模板引擎 开源项目介绍 web 模板引擎 node.js jade 207.8k 次阅读  ·  读完需要 69 分钟 ...

  6. ionic3 npm install cordova error syscall rename

    突然出现cordova 不是内部或外部命令,也不是可运行的程序或批处理文件. 可是之前cordova安装后一直用的好好的啊,后来尝试重新安装cordova 出现这个错误.也尝试重新安装了最新版本的no ...

  7. Net使用RdKafka引发异常RdKafka.Internal.LibRdKafka 的类型初始值设定项引发异常

    在Net中VS2015用RdKafka组件开发消息发布和消费,引发下面的异常 RdKafka.Internal.LibRdKafka 的类型初始值设定项引发异常System.TypeInitializ ...

  8. leetcode — permutations-ii

    import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Source : https://o ...

  9. 【原创】uC/OS II 任务切换原理

    今天学习了uC/OS II的任务切换,知道要实现任务的切换,要将原先任务的寄存器压入任务堆栈,再将新任务中任务堆栈的寄存器内容弹出到CPU的寄存器,其中的CS.IP寄存器没有出栈和入栈指令,所以只能引 ...

  10. ES6躬行记(9)——字符串

    在介绍字符串之前,有必要先了解一点Unicode的基础知识,有助于理解ES6提供的新功能和新特性. 一.Unicode Unicode是一种字符集(即多个字符的集合),它的目标是涵盖世界上的所有字符, ...