涉及工具和平台
Windows 10 x64
Python 3.5+
Flask
1、安装 IIS,启用 CGI
iis一般都会安装,这里讲一下cgi的安装,一般在iis安装中都会默认安装cgi,如果没有装的话可以到控制面板\所有控制面板项\程序和功能下的启用或关闭windows功能中去找到并打开。
2、python安装wfastcgi并激活
我这里用的python集成环境anaconda,打开的命令行是Anaconda Prompt。
pip install wfastcgi
进入python安装目录下的scripts文件夹然后运行wfastcgi-enable
运行成功后会提示一下文字:"c:\program files\anaconda3\python.exe"|"c:\program files\anaconda3\lib\site-packages\wfastcgi.py"这段文字非常重要,后续在配置程序映射的时候会用到。
3、配置webconfig文件
在Flask程序的同级目录下新建web.config文件,文件内容如下
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="FlaskFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="c:\program files\anaconda3\python.exe|"c:\program files\anaconda3\lib\site-packages\wfastcgi.py"" resourceType="Unspecified" requireAccess="Script" />
</handlers>
<security>
<requestFiltering allowDoubleEscaping="true"></requestFiltering>
</security>
</system.webServer>
<appSettings>
<!-- Required settings -->
<add key="WSGI_HANDLER" value="Flasktest.app" />
<add key="PYTHONPATH" value="~/" />
</appSettings>
</configuration>
先按照以上内容保存,后续在配置程序映射时再做修改。
4、iis中新建网站
按需求填写网站名称,物理路径,端口号。
5、配置网站程序映射
打开网站下方的处理程序映射模块,添加模块映射
请求路径填写*,模块选择FastCgiModule,可执行文件将之前安装激活wfastcgi成功后返回的语句拷入"c:\program files\anaconda3\python.exe"|"c:\program files\anaconda3\lib\site-packages\wfastcgi.py",填写模块名称(自定义),点击请求限制,将仅当请求映射至一下内容是才调用处理程序的√去掉。
6、修改webconfig配置文件
由于上一步添加了fastcgi模块,在配置文件下的handlers节点下方会多出一条add,将原来的add去除即可。
修改appSettings节点下add key为WSGI_HANDLER的value,将他改成运行的python主程序的名字,后缀为app即可。
以上就是配置的基本流程,可能会在运行中提到权限的问题,可以手动将文件夹的权限改成everyone最大权限即可。