目录[-]

系统环境及软件:

    Windows Server 2008 R2 Enterprise Service Pack 1

    Python 2.7.14

    pip 9.0.1

    Django 1.11.5

    可正常运行的网站。

一、wFastCGI的安装

使用下面直接安装:

pip install wfastcgi

安装完成后启用:

wfastcgi-enable

二、Django网站配置

1、设置独立的wfastcgi.py文件

在python的Lib\site-packages目录下,找到wfastcgi.py文件,并将其复制到你的django项目根目录(manage.py同目录)下。建议各个django项目使用自己根目录下的wfastcgi.py文件。

2、配置网站web.config文件

scriptProcessor、WSGI_HANDLER、WSGI_HANDLER和DJANGO_SETTINGS_MODULE是必需配置项。 scriptProcessor设置了python.exe和wfastcgi.py的位置,注意两个变量之间的“ | ”;WSGI_HANDLER声明get_wsgi_application()函数,和下面代码中相同设置即可;WSGI_HANDLER设置项目位置;DJANGO_SETTINGS_MODULE是Django项目的设置文件位置,根据项目设置。 注意:web.config的环境变量也可在IIS中部署网站时设置。

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <handlers>
            <add name="LotHandler"
                 path="*"
                 verb="*"
                 modules="FastCgiModule"
                 scriptProcessor="C:\Python27\python.exe|D:\WebCodes\lottery\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="D:\WebCodes\lottery" />
            <add key="WSGI_LOG" value="C:\Logs\lottery.log" />
            <add key="DJANGO_SETTINGS_MODULE" value="lottery.settings" />
        </appSettings>
    </configuration>

3、静态文件设置

3.1、静态文件的收集

在settings.py 中设置好收集文件夹名称 'collected_static‘(可任意设置)

STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')

切换到项目根目录运行收集命令,将所有静态文件(包括但不限于CSS、JS等)收集到collected_static中。命令会自动收集所有项目应用中的静态文件。

python manage.py collectstatic

3.2、web.config配置

在collected_static新建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>

三、IIS部署

1、网站参数设置

进入IIS管理器,添加网站并设置相关参数

 

2、FastCGI设置

在IIS管理器中,打开FastCGI设置 :

进入FastCGI设置页面,添加新的应用,设置python应用和wFastCGI的路径;然后设置环境变量,设置Name和Value。如果在第二步中的根目录web.config文件中已经设置,环境变量可以不用设置,但需要添加应用程序。

 

2、添加虚拟目录

将收集的静态文件设置为虚拟目录,网站就可以加载静态文件了。

 

更新应用程序池,重启网站,访问页面。


参考文献:

1、https://pypi.python.org/pypi/wfastcgi

 2、https://stackoverflow.com/questions/32312590/how-to-fetch-static-css-files-with-django-on-iis