### 前言
一键部署 php 套件一大把,然而 Python 项目就很难找 一键部署的套件!
之前,我在IIS下配置 flask1 项目,业余的搞了我好几天了:那是大约3年前的事情。
Wepy(微爬) - FX 发布之后,部署一直是本人的一个心梗。
之前在现有 phpStudy 的 Apache 上,安装mod_wsgi没成功;为此,我还用qq联系了 phpStudy 作者,叫他考虑 在 phpStudy 里面 添加 mod_wsgi 扩展,可兼容部署 Python 项目 ……
今天静下心来再玩了一把:终于搞定,谨分享如下!
### 现有环境
如果是全新的 服务器,我可能选用 宝塔;可直接配置 php, java, python 项目。
而我本机已安装 phpStudy,已经运行 Mysql+Apache/Nginx,已经部署很多 php 项目; 这些项目不能惊动它们,于是放弃使用宝塔。
当前系统: Wind10 + Python3.9 + phpStudy (Mysql+Apache运行中);
拟在现有 Apache 里面,安装 mod_wsgi 扩展;添加一个站点,运行 Python-flask 项目。
以下为重点提示:
### mod_wsgi安装
下载.whl文件: https://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
安装: pip3 install D:\Python39\Scripts\mod_wsgi-4.9.1-cp39-cp39-win_amd64.whl
(注意与 Python/Apache版本要对应, 之前用pip安装不成功,应该是没有指定好版本导致)
参考: https://www.jianshu.com/p/bebe855967ee
获取python配置信息: mod_wsgi-express module-config 成功则安装完毕。
### 添加 wsgi-run.py 文件
在flask项目里添加 `wsgi-run.py` 文件,文件名可任意取,后缀可为.py, .wsgi都可,与Apache设置对应即可。
import os, sys
sys.path.insert(0, os.path.dirname(__file__))
#sys.stdout = sys.stderr
from AppYS import create_app
application = create_app()
参考: https://www.ucloud.cn/yun/35745.html
flask 爬坑指南(二)将flask应用部署在apache上(坑巨多)
提示代码: `sys.path.insert(...)` # 注意这行, 我因为这个弄了很久...
### 添加 Apache 站点
phpStudy 下添加 Apache 站点,再手动修改配置;
`wsgi-run.py` 文件名与前一步对应就是 (注意修改自己的路径)
LoadFile "d:/python39/python39.dll"
LoadModule wsgi_module "d:/python39/lib/site-packages/mod_wsgi/server/mod_wsgi.cp39-win_amd64.pyd"
WSGIPythonHome "d:/python39"
<VirtualHost *:80>
ServerName py-dep1.txjia.com
WSGIScriptAlias / E:\Webs\peace\python/wepy-fx\wsgi-run.py
<Directory "E:\Webs\peace\python\wepy-fx">
Require all granted
</Directory>
</VirtualHost>
参考: https://flask.palletsprojects.com/en/2.0.x/deploying/mod_wsgi/
整个 flask2 文档,我看了几次了,之前部署这章节没仔细看,今天补回来了。
### 运行结果
重启 Apache ,地址栏输入:py-dep1.txjia.com (本地域名线上打不开,配置站点时设置的),结果截图如下:
部署其他 flask 项目也一样啊,这里只是用 Wepy(微爬) - FX为示范。
尊重版权 共享技术 | 网络无限 大道至简