介绍
大家都知道服务器使用linux部署的好,但总有一些例外。
这次部署,看了很多的教程,但还是遇到很多坑。所以写这篇记录一下,为自己,也是为了后来人能多一份参考。
安装
-
python的安装
明确需要安装的python版本,在官网选择对应的版本下载,安装。安装时建议勾选
ADD Python xx to PATH
,并选择自定义安装在一个较短的路径下,方便后面使用时过长的路径造成输入错误。 -
安装数据库
选择恰当的数据库,和本地安装数据库步骤一样,这里就不多说。
-
安装IIS和URL重写
这两个软件可以通过Microsoft Web Platform Installer来安装,下载后运行,在搜索框中输入CGI,点击添加,输入URL点击添加。之后点击安装即可,等待安装完成。
- 上传代码
这里远程桌面我是用teamviewer,一个很良心的远程连接软件,个人使用免费,不过传输速度很一般。总之,将代码上传到服务器。
配置
- 安装web程序依赖包
- 在代码目录中按住
shift+鼠标右键
点击在此处打开命令提示符
。使用命令pip install -r requirements.txt
安装web程序依赖包(如果有的话)。 - 使用命令
pip install wfastcgi
安装wfastcgi,安装成功后启用wfastcgi,使用命令wfastcgi-enable
。返回如图4,记住返回的c:\python\python.exe|c:\python\lib\site-packages\wfastcgi.py
,python安装目录不同,返回的不相同,以自己的为准。当然也可以使用wfastcgi-disable
停止该服务。
- 在代码目录中按住
在Internet 信息服务(IIS)管理器配置网站
- 打开Internet 信息服务(IIS)管理器
-
点击网站,右键添加网站,点击确定
-
处理程序映射
- 双击进入处理程序映射后,点击右边添加模块映射。
如果双击处理程序映射报错(...在父级别上锁定了该节...),在管理员权限的命令提示符下执行下面两条命令即可。
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers
%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
-
点击请求限制,取消勾选
-
FastCGI设置
- 添加两个环境变量
- name 为
PYTHONPATH
,value为C:\MathModeling-dev
(注意:这里是你的程序根目录地址) - name为
WSGI_HANDLER
,value为run.app
(注意:这里应该是你启动项目时运行的程序名加上.app
)
-
回到这里,点击重新启动后,点击浏览网站下面的链接,应该就能看到你的网站了。至此我们就成功部署了。
阿里云搭建实战
进行上面的步骤没有问题的话,我们这里只需要设置阿里云服务器的防火墙即可。
点击添加规则,设定好端口范围即可。这里的端口范围应该包含我们添加网站时设置的端口。
用外网就可以访问了,如果不能访问,进行以下设置。
打开高级安全windows防火墙,点击左边的
入站规则
,再点击右边的新建规则
然后下一步,下一步到完成就OK.名称随便写都可以。到这里外网应该能访问了,如果还不行,就直接关闭服务器的防火墙。检查以上所有步骤是否完善正确。
参考
Deploying Python web app (Flask) in Windows Server (IIS) using FastCGI