python发布IIS
参考文档
https://segmentfault.com/a/1190000008909201
http://blog.51cto.com/anngle/1922041
https://www.cnblogs.com/xiaolecn/p/5111076.html --配置过程中,一直出错,最后看了这个文章
1. https://download.lfd.uci.edu/pythonlibs/n1rrk3iq/wfastcgi-3.0.0-py2.py3-none-any.whl 下载安装
pip install wfastcgi-3.0.0-py2.py3-none-any.whl
2. IIS 中启用 CGI --我发现我已经装了
安装 URL 重写组件
IIS 需要安装 URL 重写组件,这个可以通过Microsoft Web Platform Installer来安装。
安装完毕后,运行这个Microsoft Web Platform Installer,搜索url,安装url重写工具
3.一旦wfastcgi
和IIS安装完毕,用管理员的身份运行wfastcgi-enable
来在IIS上启用wfastcgi
配置。这个能配置一个路由处理器的CGI应用。
wfastcgi-enable
d:\anaconda3\python.exe|d:\anaconda3\lib\site-packages\wfastcgi.py
.
看到截图中的结果,这个下面要用。
上面执行的命令实际上和手动添加一样,如下图:
如果要卸载,记得在卸载之前禁用wfastcgi
,运行wfastcgi-disable
:
wfastcgi-disable
pip uninstall wfastcgi
4.项目根目录下创建一个web.config文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<!-- scriptProcessor 的值来自命令行工具 wfastcgi-enable -->
<add name="FlaskFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="d:\anaconda3\python.exe|d:\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="MyFlask.app" />
<add key="PYTHONPATH" value="~/" /> <!-- Optional settings -->
<!-- 需要先创建日志目录,否则报错 -->
<add key="WSGI_LOG" value="D:\PythonLogs\oboeqa_web.log" />
<add key="WSGI_RESTART_FILE_REGEX" value="" />
</appSettings>
</configuration>
5.建立网站目录
把python项目拷贝到D:\website\MyFlask
6. shift鼠标右键,进入控制台,运行如下两条命令 (注,这一步不知是否正确,后来我在website目录下又执行了一遍下面的命令)
icacls . /grant "NT AUTHORITY\IUSR:(OI)(CI)(RX)"
icacls . /grant "Builtin\IIS_IUSRS:(OI)(CI)(RX)"
7. IIS中添加网站
8. 此时按照别的教程,应该已经完成了,但是此时我点击在实施过程中,用了上面的web.config后点击处理程序映射报错。
我猜想,这里的配置应该就是上面的web.config的配置。我把项目中的web.config删除后,点击‘处理程序映射’,没有报错。手动添加模块映射
注意,wfastcgi.py 请从之前记录下来的目录下拷贝到项目下面。路径一定要* , 不能写*.py
确定后
此时,发现项目中,自动添加了web.config文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="py" path="*" verb="*" modules="FastCgiModule" scriptProcessor="D:\Anaconda3\python.exe|D:\website\MyFlask\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
</handlers> </system.webServer>
</configuration>
FastCGI设置:
WSGI_HANDLER WSGI_HANDLER
PYTHONPATH ~/ ==》这里注意了,我一开始这里写了绝对路径,导致了我开发环境调试时,app也指向了正式的app。
应用程序池是这样的
这里要启动
最新文章
- 常用CSS样式
- Socket通信客户端设计(Java)
- 估值十亿美元、1.5亿用户,公司CEO却跑路了
- javascript 与和非
- DirectDraw打造极速图形引擎(Alpha混合)
- mac brew install redis
- 自定义滚动控件(Pagecontrol)
- AFNetWorking3.0使用 自签名证书的https请求
- C#_IComparer实例 - 实现ID或者yearOfscv排序
- Lucene全文检索系列(一)
- 新手必看:如何快速看懂VC++项目
- Windows 7各版本的主要功能区别是什么 有何不同
- Objective-C和Swift
- JavaScript 中 apply 、call 的详解
- ES2015 类 class 语法
- [Vue] vue2.0
- Javascript高级编程学习笔记(40)—— DOM(6)CDATASection、DocumentType
- vue2中使用transition
- CSS3 3D酷炫立方体变换动画
- JavaSE-基础语法(一)--数据类型及包装类