使用自定义 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_wsgi
和 python
二进制文件而无需访问 Apache 或系统的根配置?如果没有,是否有任何解决方法?
AFAIK 任何时候您只能 运行 Apache 与 mod_wsgi 的单一版本。这意味着所有应用程序必须使用相同版本的 Python,这是我之前 运行 遇到的问题。我认为您的选择是:
a) 说服系统管理员切换到您的版本。可以使用不同于系统 Python.
的 Python 版本
b) 看看像 Gunicorn 这样的东西。这与 Apache 更加分离,因此将允许应用程序在同一台服务器上使用不同版本的 Python。
我已获得访问 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_wsgi
和 python
二进制文件而无需访问 Apache 或系统的根配置?如果没有,是否有任何解决方法?
AFAIK 任何时候您只能 运行 Apache 与 mod_wsgi 的单一版本。这意味着所有应用程序必须使用相同版本的 Python,这是我之前 运行 遇到的问题。我认为您的选择是:
a) 说服系统管理员切换到您的版本。可以使用不同于系统 Python.
的 Python 版本b) 看看像 Gunicorn 这样的东西。这与 Apache 更加分离,因此将允许应用程序在同一台服务器上使用不同版本的 Python。