Apache2.4 + mod_wsgi + Flask 的问题
資深大佬 : j0shfan 12
各位大佬,不知道有无以上三件套的经验。
我这两天搞这个快疯了,
先上下各版本:
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 文件
我这两天搞这个快疯了,
先上下各版本:
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 包的版本也要改变,因此没法走这个回头路。
求教各位大佬!
大佬有話說 (10)