在windows server下IIS部署flask

部署流程

1. 确认python版本

python -version

2. 安装python

sudo yum -y update
sudo yum -y install epel-release
curl -O https://www.python.org/ftp/python/3.6.7/Python-3.6.7rc2.tgz
tar xf Python-3.6.7rc2.tgz
cd Python-3.6.7rc2
./configure
make
sudo make install

3. 安装pip

4. 安装wfastcgi

pip install wfastcgi

5. 测试是否能运行项目和安装依赖

python app.py runserver --host 0.0.0.0 --port 8000

6. cmd使用命令wfastcgi-enable获取

FastCGI script processor

7. 服务器管理工具 安装CGI

打开服务器管理工具->添加角色和功能->web服务器->cgi->安装

8. 打开IIS,添加网站

自定义网站名称,在物理路径中选择项目路径,绑定主机名,选择本地ip,自定义端口

9. 在项目路径下配置web.conf

注意事项:

  • scriptProcessor下的路径由第五步生成
  • app.app:指flask启动程序app.py
  • C:\logs\oboeqa_web.log,指日志文件地址,需要新建C:\logs文件夹。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
            <add name="f" path="f" verb="*" modules="FastCgiModule" scriptProcessor="C:\Users\Administrator\AppData\Local\Programs\Python\Python35\python.exe|C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\wfastcgi.py&quot;" resourceType="Unspecified" requireAccess="Script" />
      <!-- scriptProcessor 的值来自命令行工具 wfastcgi-enable -->
      <add name="FlaskFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Users\Administrator\AppData\Local\Programs\Python\Python35\python.exe|C:\Users\Administrator\AppData\Local\Programs\Python\Python35\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>

10. 添加“处理程序映射”

如图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VBhUgmXT-1577696939381)(3E308716567D4D8E9F7E20E983C63C82)]

  • 右键->添加“添加模块映射”
  • 对应步骤7中的:
<add name="f" path="f" verb="*" modules="FastCgiModule" scriptProcessor="C:\Users\Administrator\AppData\Local\Programs\Python\Python35\python.exe|C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-packages\wfastcgi.py&quot;" resourceType="Unspecified" requireAccess="Script" />

11. 浏览网站

错误处理

1. 如果出现未知CGI错误

发生未知 FastCGI错误,错误代码 0x8007010b 的解决办法

修改该网站所对应的应用程序池

进程模型->标识 修改为:LocalSystem

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tKIHw7hT-1577696939382)(50251BFA178B42CBA1CF6CF9378768E6)]

2. 错误模块"FastCgiModule"

描述 HTTP 错误 500.21 - Internal Server Error 处理程序"FastCGI"在其模块列表中有一个错误模块"FastCgiModule"

3. 缺少XXX moudle

在项目终端执行
pip freeze > requirements.txt
在生产环境中安装所需要的文件
pip install -r requirement.txt -i https://pypi.tuna.tsinghua.edu.cn/simple (使用国内的源)

参考

https://my.oschina.net/u/2333235/blog/1616788
https://blog.csdn.net/yuzaipiaofei/article/details/80891108

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值