使用带有 Mod_Python 和多个 Python 安装的 Apache 在 Virtualenv 中运行 Django
我想使用 mod_python 在 Apache 中使用 virtualenv 在服务器上运行 Django 项目。现在我知道推荐使用的 apache 模块是 mod_wsgi,但我现在不想安装它。
服务器上默认的python安装是python2.4,服务器上的其他一些网站使用它。因为我的项目是基于 python2.6 构建的,所以我使用“make altinstall”将其安装在 /usr/local/ 中的 python2.4 旁边。 我使用这个网站来设置我的 apache conf 文件: http: //mydjangoblog.com/2009/03/30/django-mod_python-and-virtualenv/。
我的问题是:有没有办法指定它(可能是mod_python)应该使用python2.6而不是python2.4? 如果无法使用 mod_python 在一个 apache 中运行 2 个 python 版本,是否可以使用 mod_wsgi?或者在一个 apache 安装中是否有可能使用 mod_python 和我使用 mod_wsgi 的另一个站点?
I would like to run a Django project on a server using virtualenv in Apache using mod_python. Now I know that the recommended apache module to use is mod_wsgi, but I don't want to install that for now.
The default python installation on the server is python2.4, which is used by some other website on the server. Because my project was built on python2.6 I installed it next to python2.4 in /usr/local/ using 'make altinstall'.
I've used this website to setup my apache conf file: http://mydjangoblog.com/2009/03/30/django-mod_python-and-virtualenv/.
My question is: is there a way to specify that it (mod_python probably) should use python2.6 instead of python2.4?
If there is no way to run 2 python versions in one apache using mod_python, would it be possible using mod_wsgi? Or would it be possible in one apache installation with the other site using mod_python and me using mod_wsgi?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不,你不能这样做。 mod_python 是用特定的 Python 版本预编译的。如果您想更改该版本,则必须重新编译 mod_python - 如果您这样做,您不妨安装 mod_wsgi。
mod_wsgi 可以实现这一点,因为它不会将解释器嵌入到 Apache 本身中,因此它并不关心您使用什么版本。让 virtualenv 与 mod_wsgi 一起工作非常容易 - 您只需在
.wsgi
脚本中激活 virtualenv 即可:No, you cannot do this. mod_python is pre-compiled with a particular Python version. If you wanted to change that version, you'd have to re-compile mod_python - and if you're doing that, you might as well install mod_wsgi.
It is possible with mod_wsgi, as that doesn't embed an interpreter into Apache itself, so it doesn't care what version you use. It's quite easy to get virtualenv working with mod_wsgi - you just need to activate the virtualenv inside your
.wsgi
script:您还可以在不同端口上使用 runwsgiserver 运行 django 项目,然后使用带有反向代理的 apache。
像这样:
以及 apache 上的反向代理:
You could also run the django project with a runwsgiserver on a different port and then use apache with a reverse proxy.
like so:
and the reverse proxy on apache: