用wfastcgi在IIS中配置python运行环境

案例环境:Win7 + IIS7.5 + Python3.6.3 + wfastcgi

第一步:分别安装 python 和 IIS,Django或Flask

(很常规很简单了,此处省略一万字)

第二步:安装 wfastcgi

pip install wfastcgi

第三步:启用wfastcgi,并记录下输出的路径

wfastcgi-enable

系统输出如***意我选中的部分

用wfastcgi在IIS中配置python运行环境

记录下引号中的地址(Python安装路径不同,输出也就不同):D:\myServer\python-3-amd64\python.exe|D:\myServer\python-3-amd64\Lib\site-packages\wfastcgi.py

第四步:在IIS中作配置

【1】Fast CGI 设置,如图(参数就在刚才记录的地址里)

用wfastcgi在IIS中配置python运行环境

【2】处理程序映射,如图(参数还是在刚才记录的地址里)

用wfastcgi在IIS中配置python运行环境

第五步:用Django或其他框架创建一个网站,并在根目录下创建一个 web.config文件,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <handlers>
                <add name="Python FastCGI" 
                     path="*" 
                     verb="*" 
                     modules="FastCgiModule" 
                     scriptProcessor="D:\myServer\python-3-amd64\python.exe|D:\myServer\python-3-amd64\Lib\site-packages\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:\myServer\myapps\pifubanAPI" />
            <add key="DJANGO_SETTINGS_MODULE" value="pifubanAPI.settings" />
        </appSettings>
    </configuration>

因为全局配置了Fast CGI 和模块映射了,所以也可以不要 <system.webServer> 节,直接简化如下:

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <appSettings>
            <add key="WSGI_HANDLER" value="django.core.wsgi.get_wsgi_application()" />
            <add key="PYTHONPATH" value="D:\myServer\myapps\pifubanAPI" />
            <add key="DJANGO_SETTINGS_MODULE" value="pifubanAPI.settings" />
        </appSettings>
    </configuration>

含义解读:

<?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <system.webServer>
            <handlers>
                <add name="Python FastCGI" 
                     path="*" 
                     verb="*" 
                     modules="FastCgiModule" 
                     scriptProcessor="D:\myServer\python-3-amd64\python.exe|D:\myServer\python-3-amd64\Lib\site-packages\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:\myServer\myapps\pifubanAPI" />【这是是网站的根目录】
            <add key="DJANGO_SETTINGS_MODULE" value="pifubanAPI.settings" />【这里是Django网站的配置,其他框架相应调整即可】
        </appSettings>
    </configuration>

另:在settings.py中这样设置 ALLOWED_HOSTS = ['*'] ,允许所有域名/地址,即可在IIS中任意绑定域名和配置IP了。

OK,大功告成,效果如下:

用wfastcgi在IIS中配置python运行环境

(注意:如果某些目录是不需要python解析,可以在目录下再配置一个 web.config,参考写下如下代码即可:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <remove name="Python FastCGI" />
    </handlers>
  </system.webServer>
</configuration>

remove name的值要与上级的add name值一致 )