用wfastcgi在IIS中配置python运行环境
案例环境:Win7 + IIS7.5 + Python3.6.3 + wfastcgi
第一步:分别安装 python 和 IIS,Django或Flask
(很常规很简单了,此处省略一万字)
第二步:安装 wfastcgi
pip install wfastcgi
第三步:启用wfastcgi,并记录下输出的路径
wfastcgi-enable
系统输出如***意我选中的部分
记录下引号中的地址(Python安装路径不同,输出也就不同):D:\myServer\python-3-amd64\python.exe|D:\myServer\python-3-amd64\Lib\site-packages\wfastcgi.py
第四步:在IIS中作配置
【1】Fast CGI 设置,如图(参数就在刚才记录的地址里)
【2】处理程序映射,如图(参数还是在刚才记录的地址里)
第五步:用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,大功告成,效果如下:
(注意:如果某些目录是不需要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值一致 )