我有几个虚拟主机在redhat上的相同的Apache实例下configuration:
对于每个虚拟主机, WSGIScriptAlias设置都指向激活虚拟环境的python文件:
activate_this = '/path_to_the_virtualenv/bin/activate_this.py' execfile(activate_this, dict(__file__=activate_this))
现在,我打算将其中一个项目升级到python-2.7,另一个项目是python-3.x。 我知道我可以有不同的虚拟环境,单独的python沙箱。 所以,python方面一切都很好。
问题是:是否有可能在相同的apache + mod_wsgi实例下为不同的apache虚拟主机使用不同的python版本?
如果不是,那么最好的select是什么?
有一个相关的WsgiPythonHome设置,但它是在“服务器configuration”上下文中全局定义的,而不是每个虚拟主机。 另外,mod_wsgi是为特定的python版本编译的,所以我不确定它可以处理这种情况。
不,这是不可能的。 mod_wsgi二进制文件只能针对一个Python版本进行编译,而且一次只能将一个已编译mod_wsgi模块的一个实例加载到Apache中。
你需要做的是设置Apache代理到一个独立的WSGI服务器监听自己的端口。
要使用Apache / mod_wsgi作为后端服务器,你也需要使用mod_wsgi 4.1.X进行调查。 看到:
这个较新版本的mod_wsgi提供了一种安装mod_wsgi的方法,可以对多个Python版本进行安装,并使用提供的脚本为每个版本运行一个Apache实例。 该脚本接pipe了Apacheconfiguration的所有设置,因此您不必担心它。