丰富的线上&线下活动,深入探索云世界
做任务,得社区积分和周边
最真实的开发者用云体验
让每位学生受益于普惠算力
让创作激发创新
资深技术专家手把手带教
遇见技术追梦人
技术交流,直击现场
海量开发者使用工具、手册,免费下载
极速、全面、稳定、安全的开源镜像
开发手册、白皮书、案例集等实战精华
为开发者定制的Chrome浏览器插件
本人最近用flask开发一个web项目,要部署到单位内网中,内网服务器是windowserver2016,本文讲了部署的基本流程和一些爬坑过程。
web服务器层。Web服务器的主要作用就是接收请求、处理请求、返回响应。比如:Nginx,Apache,IIS等。本次选用的是Apache。
WSGI层。WSGI不是服务器,也不是用于与程序交互的API,只是一种接口,它只适用于Python语言,其全称为WebServerGatewayInterface,定义了web服务器和web应用之间的接口规范。也就是说,只要web服务器和web应用都遵守WSGI协议,那么web服务器和web应用就可以随意的组合。
Python3.6.1(v3.6.1:69c0db5,Mar212017,18:41:36)[MSCv.190064bit(AMD64)]onwin32Type"help","copyright","credits"or"license"formoreinformation.找到[MSCv.190064bit(AMD64)]
对照下表,可知MSC_VER=1900对应VisualC++2015(14.0):
选择cp36对应Python3.6版本,amd64对应64位操作系统。
使用命令行界面(以管理员身份运行)进入到mod_wsgi-4.7.1-cp36-cp36m-win_amd64.whl对应目录,直接安装。
>pipinstallmod_wsgi-4.7.1-cp36-cp36m-win_amd64.whlInstallingcollectedpackages:mod-wsgiSuccessfullyinstalledmod-wsgi-4.7.1安装成功后,切换到python的安装目录的\scripts文件夹下运行如下命令:
c:\Python36\Scripts>mod_wsgi-expressmodule-configLoadFile"c:/users/***/anaconda3/python36.dll"LoadModulewsgi_module"c:/users/***/anaconda3/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"WSGIPythonHome"c:/users/chengyikang/anaconda3"保存上述3行信息用于下步配置。
到了最后一步配置了,坚持住!
进入到项目根目录,新建app.wsgi文件,进行如下设置:
运行服务的方式有多种:
有时候会访问服务器,浏览器会提示:500InternalServerError,我们进入C:\Apache24\logs打开error.log错误日志分析原因,看不懂的百度下一般都可以解决。
如果项目中有“输入密码”选项,并用到了数据库保存密码,可能会报“RuntimeError:cryptographyisrequiredforsha256_passwordorcaching_sha2_password”这个错误,这时候直接pipinstallcryptography安装这个模块就可以了。