文章目录
部署流程
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"" 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"" 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