我在 Ubuntu 14.10 上运行 apache2 (mod-wsgi)。在服务我的网站时,我收到 500 内部服务器错误。我还在使用 Flask 和 Python 3.4 以及虚拟环境。Ubuntu 似乎默认使用 Python 2.7,我需要配置 apache2 以查找使用 Python 3.4 的虚拟环境。否则,我会收到 500 错误。我检查了 apache2 错误日志文件,它显示原因是 app.wsgi 文件无法导入 flask。而无法导入 flask 的原因是它在 Python 3.4 环境中,而 apache2 在 Python 2.7 中。
我尝试通过在 apache2.conf 文件中添加以下行来修复此问题:
WSGIPythonHome /path/to/my/virt/env
但它不起作用。
答案1
mod_wsgi 二进制文件是针对特定 Python 版本编译的。您无法强制针对 Python 2.7 编译的 mod_wsgi 版本使用 Python 3.4 安装。
我的理解是 Ubuntu 提供了 mod_wsgi 的 Python 2 和 Python 3 变体。
因此,您需要卸载适用于 Python 2 的版本并安装适用于 Python 3 的替代版本。
如果他们没有 Python 3.4 变体,您需要卸载 mod_wsgi 的 Ubuntu 包并针对 Python 3.4 从源代码构建 mod_wsgi 并自行安装。
或者考虑使用 mod_wsgi-express 并在虚拟环境中运行它。