使用自定义 mod_wsgi 和 python 对共享服务器的访问权限有限

Use custom mod_wsgi and python with limited access to a shared server

我已获得访问 Ubuntu 机器 运行 Apache 2.4.18 的权限,目的是托管我在 Flask 中开发的小型 Web 应用程序。我是没有 root 权限的用户。系统管理员好心为我安装了mod_wsgi,但是这个模块链接到系统python,是2.7版本,我想使用python >= 3.6。因此,我在这台机器上编译了我自己的 python 3.7 和我自己的 mod_wsgi,但我无法让 Apache 使用它。这可能吗?

我尝试将 LoadModule wsgi_module .../mod_wsgi-py37.cpython-37m-x86-64-linux-gnu.so 行添加到 var/www/html/whatever/.htaccess,但了解到在配置的 Directory 级别不允许这样做。我也尝试过使用 WSGIDaemonProcess user python-home=...,但这也会导致 Apache return 内部服务器错误。

更糟糕的是,我没有 var/log/apache2 的权限,所以我看不到任何 Apache 输出,除了它正在服务的内容。

是否可以将 Apache 指向我自己的 mod_wsgipython 二进制文件而无需访问 Apache 或系统的根配置?如果没有,是否有任何解决方法?

AFAIK 任何时候您只能 运行 Apache 与 mod_wsgi 的单一版本。这意味着所有应用程序必须使用相同版本的 Python,这是我之前 运行 遇到的问题。我认为您的选择是:

a) 说服系统管理员切换到您的版本。可以使用不同于系统 Python.

的 Python 版本

b) 看看像 Gunicorn 这样的东西。这与 Apache 更加分离,因此将允许应用程序在同一台服务器上使用不同版本的 Python。