zoukankan      html  css  js  c++  java
  • 使用IIS部署Django项目

    使用IIS部署Django项目

    1.  系统及软件版本:

      Windows Server 2008 Standard, IIS 7.0,  Python3.6+Django 2.0.4

    2 .  python安装wfastcgi模块:

      pip install wfastcgi

    3.  拷贝wfastcgi.py文件

      安装成功后,打开python目录—>Lib—>site-packages目录,将wfastcgi.py文件拷贝到Django项目根目录下;

      此步不是必须的,可以运行wfastcgi-enable.exe 来进行配置,并记下配置项。

      因为用户权限等问题,建议将Django项目文件夹拷贝到C:inetpubwwwroot下;

    4. IIS中添加网站,设置物理路径和端口号;

    5.    选择新建站点,选择处理程序映射—>添加模块映射

           请求路径:*

           模块:FastCgiModule

           可执行文件:xxxxxxxx|xxxxxxxxx

           注意: 前半部分为python.exe路径,如果配置虚拟环境,则为虚拟环境的python.exe路径。

           后半部分为inetpubwwwroot下,待发布的Django项目里wfastcgi.py文件的路径。

           请求限制中,勾选仅当请求映射至以下内容时才调用处理程序,选择文件。

    6.    配置环境变量

      配置完成后,选择IIS根节点,选择FastCGI设置,选择上一步添加的模块映射,配置环境变量

        需要添加的变量有3个(也可不添加此步,直接在web.config文件中设置):

        (1)get_wsgi_application()方法的位置,C:administratorLibsite-packagesdjangocorewsgi.py

                Name: WSGI_HANDLER

               Value: django.core.wsgi.get_wsgi_application()

          (2) Django项目目录

               Name: PYTHONPATH

              Value: C:inetpubwwwroot项目名

         (3)项目settings.py文件的位置

              Name: DJANGO_SETTINGS_MODULE

              Value: 项目名.settings

      在项目文件夹中web.config文件内容:

    <?xml version="1.0" encoding="UTF-8"?>
     <configuration>
     <system.webServer>
        <handlers>
             <add name="Python FastCGI"
                         path="*"
                         verb="*"
                         modules="FastCgiModule"
                         scriptProcessor="<Path to Python>python.exe|<Path to file>wfastcgi.py"
                         resourceType="Unspecified"
                         requireAccess="Script"/>
         </handlers>
    </system.webServer>
     <appSettings>
        <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
        <add key="PYTHONPATH" value="<Path to Django App>" />
        <add key="DJANGO_SETTINGS_MODULE" value="<Django App>.settings" />
    </appSettings>
    </configuration>

    7.    配置静态文件:

      在IIS部署站点上,右键点击新建虚拟目录,路径为静态文件夹,在静态文件夹中建立web.config文件,并设置:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
        <!-- this configuration overrides the FastCGI handler to let IIS serve the static files -->
        <handlers>
        <clear/>
          <add name="StaticFile" path="*" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" />
        </handlers>
      </system.webServer>
    </configuration>

    8.总结:

    • 在iis中添加网址,配置端口;
    • 选择处理程序映射,使用FastCgiModule,设置可执行文件<python -path>python.exe|<path>wfastcgi.py(可不指定后面的wfastcgi.py项,在web.config中设置);
    • 设置虚拟目录,指向项目的静态文件目录;
    • 配置两个web.config文件,项目文件夹中的web.config文件要设定好上面所说的各项。在静态文件夹中的web.config文件,一般不需要修改,直接copy过去,要特别注意。

    9. 一些注意事项:

    • 在实际部署中出现admin模块丢失样式的问题。解决办法是,在static文件夹中把python文件中的关于admin的样式目录拷贝过来。
    • 如果报错“无法在<fastCGI>应用程序配置中找到<handler> scriptProcessor”,则是
      scriptProcessor="<Path to Python>python.exe|<Path to file>wfastcgi.py" 配置错误,要运行wfastcgi-enable.exe 来进行配置,并记下配置项,修改scriptProcessor
    •  使用django auth进行登录,当验证登陆成功后,页面会自动跳转到/account/profile,报找不到页面的错误,需要在project的setting.py中设定LOGIN_REDIRECT_URL = ‘/index’,指定登陆成功后跳转的index页面。
    • 注意文件夹、文件的只读、权限问题,一般都会碰到。
    • 报HTTP 400 错误 - 请求无效 (Bad request),或者本机能够访问,用IP地址不能访问,原因是settings.py中的ALLOWED_HOSTS的设定问题,先设为ALLOWED_HOSTS=['*']测试,再添加IP地址或域名。
  • 相关阅读:
    UVA12125 March of the Penguins (最大流+拆点)
    UVA 1317 Concert Hall Scheduling(最小费用最大流)
    UVA10249 The Grand Dinner(最大流)
    UVA1349 Optimal Bus Route Design(KM最佳完美匹配)
    UVA1212 Duopoly(最大流最小割)
    UVA1395 Slim Span(kruskal)
    UVA1045 The Great Wall Game(二分图最佳匹配)
    UVA12168 Cat vs. Dog( 二分图最大独立集)
    hdu3488Tour(KM最佳完美匹配)
    UVA1345 Jamie's Contact Groups(最大流+二分)
  • 原文地址:https://www.cnblogs.com/sdlyxyf/p/11370599.html
Copyright © 2011-2022 走看看