python发布IIS
参考文档
https://segmentfault.com/a/1190000008909201
http://blog.51cto.com/anngle/1922041
https://www.cnblogs.com/xiaolecn/p/5111076.html --配置过程中,一直出错,最后看了这个文章
https://blog.csdn.net/s69122942chuiqi/article/details/103730119?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-6.control
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重写工具
安装wfastcgi
pip install wfastcgi
看看有没有装: pip show wfastcgi:
3.一旦wfastcgi
和IIS安装完毕,用管理员的身份运行wfastcgi-enable
来在IIS上启用wfastcgi
配置。这个能配置一个路由处理器的CGI应用。
wfastcgi-enable
d:\anaconda3\python.exe|d:\anaconda3\lib\site-packages\wfastcgi.py
.
看到截图中的结果,这个下面要用。
上面执行的命令实际上和手动添加一样,如下图:
(这里有个备注: 注意了, 这个全局的 FastCGI其实只要设置一个就可以了, 不需要site-packages下面的那个. 这步可以不需要. 看文档后面的对项目的添加fastcgi部分即可, 他也会在这里添加的. 另外,请注意,可能有顺序.)
补充, 如何通过界面添加:
把python的路径和wfastcgi的路径配置进去.
D:\Anaconda3\python.exe
D:\Anaconda3\Lib\site-packages\wfastcgi.py
为了验证手动添加和用命令是一样的, 做如下试验:手动添加后,再执行命令, 会报错. 删除配置,后再运行命令, 又成功.
如果要卸载,记得在卸载之前禁用wfastcgi
,运行wfastcgi-disable
:
wfastcgi-disable (其实就是把上面的配置删除)
pip uninstall wfastcgi
=========以下在正式机上都把MyFlask改为 ChatterBot======
5.建立网站目录
把python项目拷贝到D:\website\MyFlask
6. shift鼠标右键,进入控制台,运行如下两条命令
icacls . /grant "NT AUTHORITY\IUSR:(OI)(CI)(RX)"
icacls . /grant "Builtin\IIS_IUSRS:(OI)(CI)(RX)"
7. IIS中添加网站
点击网站, 处理程序映射,添加模块映射(项目名字有点不一样, 因为我是好几次完善的文档, 项目都不一样, 请忽略项目名字的不同)
下面的项目目录请修改为自己的项目
注意,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。
然后重启iis 三种方法1、界面操作
1、界面操作
打开“控制面板”->“管理工具”->“服务”。找到“IIS Admin Service” 右键点击“重新启动” 弹出 “停止其它服务” 窗口,点击“是”。
2、Net 命令操作
点击 “开始”->“运行”,输入cmd 打开命令窗口;
输入 net stop iisadmin /y 回车停止IIS;再输入 net start iisadmin 回车启动IIS;再输入 net start w3svc 回车WEB服务。
3、IISReset 命令操作 (荐)
点击 “开始”->“运行”,输入iisreset 回车。
backup=============================================================
应用程序池是这样的
这里要启动