Apache2.4 + mod_wsgi + Flask 的问题

2020-06-11 11:32:39 +08:00
 j0shfan
各位大佬,不知道有无以上三件套的经验。
我这两天搞这个快疯了,
先上下各版本:
win10
python 3.7.7 64bit v1900
Flask 1.1.1
mod_wsgi 4.5.24 ap24vc14
Apache2.4.43 Ire 312 x64 vc14
版本应该没问题吧
说说我的步骤
1)python virtual env 搭建完成
2)flask 应用非生产环境测试完成
3)venv 安装了 mod_wsgi,编写 wsgi 文件
4)使用 mod_wsgi 命令 mod_wsgi-express module-config
这里出了个问题,就是在虚拟环境中只能显示 LoadModule 和 WSGIPythonHome, 没有 LoadFile 也就是 python.dll 文件
于是我把 LoadModule 和 WSGIPython 改成 python 主目录和 dll 文件
5)继续修改 httpd.conf
主要有监听端口,还有一个 httpd-vhost.conf 加载
6)修改 httpd-vhost.conf
增加了 virualhost *:5000 的配置,其中 WSGIScriptAlias 指向.wsgi 文件


然后运行,然后碰到问题是说,无法加载 Flask 模块,也就是虚拟环境下的包的问题
我尝试
1 )在 httpd-vhost 下的 5000 配置中增加 WSGIDaemonProcess python-path,因为是 windows,这个 WSGIDaemonProcess 没用
2 )根据 flask 文档中对虚拟环境中使用 mod_wsgi 的说明,在.wsgi 文件中增加 activate_this.py , 尝试 python 内激活虚拟环境,结果一直报错(这个 activate_this.py 是从 virtualenv 包里安装后指定的),这里面可能有 Bug
3) 尝试在.wsgi 文件中添加 sys.path.insert venv/Lib/site-package path
结果:apache 2.4 能运行,但是任何请求都没有反馈,access 和 error log 没有新记录

接着我也尝试了直接在系统中安装 python 包,搭建 python 环境,修改了 httpd.conf 之后,apache2.4 和上面一样,没有回复,access 和 error log 没有新记录

因为 flask 应用已经全完成了,如果按照网上的 python 版本,python 包的版本也要改变,因此没法走这个回头路。

求教各位大佬!
2031 次点击
所在节点    Python
10 条回复
Latin
2020-06-11 11:36:20 +08:00
为啥要部署在 win 上?
j0shfan
2020-06-11 11:46:45 +08:00
@Latin 部门的小应用,然后直接拿一台工作站当服务器。已经在考虑要不要使用 docker 了,但是公司这个服务器没法连外网,就是这样调试放不方便?也是醉了
xulolololololo
2020-06-11 12:15:02 +08:00
建议:工作站装成 linux 系统,或者 windows 跑 docker,windows 下的奇怪问题多得你怀疑人生,windows 不适合服务器开发,这点是确定的。如果工作站不能换系统,直接装个虚拟机,虚拟一台 linux 系统出来,这不香吗。这可以节省一堆时间去摸鱼。
j0shfan
2020-06-11 13:17:33 +08:00
@xulolololololo 可以,这次是真的跪了,应该用 Linux 的
tomczhen
2020-06-11 13:33:16 +08:00
IIS➕wfastcgi
wuwukai007
2020-06-11 14:37:00 +08:00
waitress 用这个
qile1
2020-06-11 15:30:11 +08:00
nginx 代理比较简单,静态文件分开处理,我是把 flask 前面套了个 wsgi 的 Tornado,这样比较简单
nginx 下载解压修改下代理端口,直接运行就可以,起 tornado 后就可以啦

Windows 部署你有没有发现 flask 有卡死情况?
ytymf
2020-06-11 16:52:05 +08:00
win 就直接 IIS 加 wfastcgi 就好了啊,微软官方出品
j0shfan
2020-06-11 18:51:58 +08:00
@tomczhen
@ytymf
感谢建议!我就需要这样的方案建议!!周末试试!
j0shfan
2020-06-11 18:59:28 +08:00
@qile1
感谢建议!
没有吧,没碰到过。开多线程如何?我瞎蒙的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.fyfyfm.apispeedy.workers.dev/t/680606

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX