zoukankan      html  css  js  c++  java
  • Python-Django Win7上使用Apache24和mod_wsgi部署Django1.11应用程序

    Win7上使用Apache24mod_wsgi部署Django1.11应用程序

    by:授客 QQ1033553122

     

    测试环境

    win7 64

    Django-1.11.4.tar.gz

    下载地址:https://pan.baidu.com/s/1hsclV5y

     

    httpd-2.4.23-win64.zip

    下载地址1https://www.apachelounge.com/download/VC10/

    下载地址2https://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++ 编译器编译的ApachePython版本。

    4、使用相同Microsoft C/C++ 编译器编译的Apachemod_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

     

    部署操作

    项目文件结构

    Python-Django <wbr>Win7上使用Apache24和mod_wsgi部署Django1.11应用程序

     

    解压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 停止

     

    浏览器访问

    Python-Django <wbr>Win7上使用Apache24和mod_wsgi部署Django1.11应用程序

     

     

    添加mod_wsgi.so模块

    mod_wsgi-py34-VC10.so重命名为mod_wsgi.so,放入D:Apache24modules目录下。

     

    参考链接:

    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:AutotestPlatformAutotestPlatformsettings.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:AutotestPlatformstatic

    This will overwrite existing files!

    Are you sure you want to do this?

     

    Type 'yes' to continue, or 'no' to cancel: yes #输入yes,回车

     

    完成后,把收集的静态文件都放到 D:AutotestPlatformstatic目录下

    参考链接:

    https://pypi.python.org/pypi/mod_wsgi

     

    Django访问IP配置

    修改应用的settings.py(例中为D:AutotestPlatformAutotestPlatformsettings.py),编辑,找到ALLOWED_HOSTS修改为如下值,其中192.168.1.101Django所在主机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:Apache24in>httpd.exe -k stop

    The 'Apache2.4' service is stopping.

    The 'Apache2.4' service has stopped.

     

    D:Apache24in>httpd.exe -k start

     

    说明:到这一步,已经可以浏览器访问了,以下为了看对比效果,同时开启了Django

     

    启动Django

    python manage.py runserver 0.0.0.0:8001 --insecure

     

    浏览器验证

    Python-Django <wbr>Win7上使用Apache24和mod_wsgi部署Django1.11应用程序

     

    Python-Django <wbr>Win7上使用Apache24和mod_wsgi部署Django1.11应用程序

  • 相关阅读:
    js 常用正则表达式
    深度学习
    开通自动订阅功能前:输入银行业务信息
    VUE学习九,生命周期
    Setting Windows server firewall by powershell
    Install iis web server using powershell
    转 FAL[server, ARC3]: FAL archive failed Error 16401 creating standby archive log file at host
    springboot admin 监控
    二进制手指计数法
    SpringBoot集成Swagger-Bootstrap-UI
  • 原文地址:https://www.cnblogs.com/shouke/p/10157528.html
Copyright © 2011-2022 走看看