我已经可以访问运行Apache 2.4.18的Ubuntu计算机,以托管我在Flask中开发的小型Web应用程序。我是没有root特权的用户。系统管理员已经为我安装了mod_wsgi
,但是此模块与2.7版的系统python链接,并且我想使用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返回内部服务器错误。
更糟糕的是,我没有var/log/apache2
的权限,因此除其服务内容外,我看不到任何Apache输出。
是否可以将Apache指向我自己的mod_wsgi
和python
二进制文件,而无需访问Apache或系统的根配置?如果没有,是否有任何解决方法?
答案 0 :(得分:1)
AFAIK,您一次只能使用单个版本的mod_wsgi运行Apache。这意味着所有应用程序都必须使用相同版本的Python,这是我之前遇到的问题。我认为您的选择是:
a)说服系统管理员切换到您的版本。可以使用与系统Python不同的Python版本。
b)看一下Gunicorn之类的东西。这与Apache更加分开,因此将允许应用程序在同一服务器上使用不同版本的Python。