涉及工具和平台
- Windows 7 x64
- IIS
- Python 3.4
- Flask
- pymysql
- pandas
文件结构
安装python
安装 IIS,启用 CGI
在控制面板搜索“打开或关闭 Windows 功能”
安装 URL 重写组件
下载地址:https://www.microsoft.com/web/downloads/platform.aspx
下载完成后安装。
打开IIS管理器:
双击,打开Web平台安装程序
安装CGI(搜索CGI)和URL 重写组件(搜索URL)
安装pip
下载pip
地址:https://pypi.org/project/pip/#files
解压下载的压缩包至工作目录下(如D:\),打开Windows cmd,运行如下命令进入解压后的pip目录:
cd /d D:\pip-18.1
使用如下命令进行安装:
python setup.py install
pip常用命令:
#安装包
pip install xxx
#升级包,可以使用-U 或者 --upgrade
pip install -U xxx
#卸载包
pip uninstall xxx
#列出已安装的包
pip list
安装virtualenv虚拟环境
pip install virtualenv
创建虚拟环境
cd /d D:\saintLocal
virtualenv venv8085
进入虚拟环境
# 进入虚拟环境文件
cd venv8085
# 进入相关的启动文件夹
cd Scripts
activate # 启动虚拟环境
安装项目需要的模块
# pip freeze > requirements.txt #生成requirements.txt
pip install -r requirements.txt #安装requirements.txt依赖
安装wfastcgi(注:这里是全局安装,不是在虚拟环境安装。)
deactivate # 退出虚拟环境
pip install wfastcgi
在python3.6的安装目录: Lib/site-packages文件夹下,找到: wfastcgi.py 这个文件。
把这个文件拷贝到你的项目根目录:
启用wfastcgi
cd到wfastcgi.py所在目录后执行(或者将目录路径添加到PATH)。
创建web.config 文件并置于上一级目录
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<!-- scriptProcessor 的值来自命令行工具 wfastcgi-enable -->
<add name="FlaskFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="e:\anaconda3\python.exe|e:\anaconda3\lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
</handlers>
<security>
<!-- URL 重写中的特殊字符,比如加号+等等 -->
<requestFiltering allowDoubleEscaping="true"></requestFiltering>
</security>
</system.webServer>
<appSettings>
<!-- Required settings -->
<!-- 在这里指定Falsk app在模块中的具体位置 -->
<add key="WSGI_HANDLER" value="app.app" />
<add key="PYTHONPATH" value="~\" />
<!-- Optional settings -->
<!-- 需要先创建日志目录,否则报错 -->
<add key="WSGI_LOG" value="C:\logs\oboeqa_web.log" />
<add key="WSGI_RESTART_FILE_REGEX" value="" />
</appSettings>
</configuration>
配置 IIS 目录及权限
现在你需要让IIS用户拥有访问和执行你的网站脚本的权限,进入 D:\saintLocal目录:
cd D:\saintLocal
然后执行下面两条命令:
icacls . /grant "NT AUTHORITY\IUSR:(OI)(CI)(RX)"
icacls . /grant "Builtin\IIS_IUSRS:(OI)(CI)(RX)"
IIS添加应用
在你的网站下面找到【处理程序映射】如图:双击打开:
添加模块映射: 大家注意图片中标注的第2条。(D:\saintLocal\venv8085\Scripts\python.exe|e:\anaconda3\lib\site-packages\wfastcgi.py) 前面部分为虚拟环境路径,| 号后面是项目里的wfastcig.py路径。请求限制中把(映射下面的√去掉)。
确认添加模块
这个时候你应该可以看见你的FlaskFastCGI程序了
回到IIS控制台,进入【FastCGI设置】如图:
双击打开你应该可以看见刚才添加的FastCGI:
双击,编辑 —【环境变量】
这里添加2个变量:
PYTHONPATH 值为: 项目路径:(如:D:\saintLocal\ZZ_8085)
WSGI_HANDLER 值为: 项目启动文件中的app,如图,因为我是通过app.py启动。