在一台生产服务器上使用不同的Django版本,如何设置?

输出应该看起来像这样。

  1. http://www.example.com/djangoapp1 django版本0.96
  2. http://www.example.com/djangoapp2 django版本1.0.2

使用Apache服务器,使用mod_python。 或者推荐最多的任何服务器技术。

谢谢。

我不确定用mod_python可以正确地做到这一点。 在过去,我曾经在mod_python中看到过大量的跨线程/进程泄漏。 现在使用virtualenv可能会更好,但不值得。

为了获得更好的性能,更好的支持,更好的内存使用以及更less的bug,请转到mod_wsgi …然后在Virtual Environments上按照wiki页面运行多个Django版本。

从技术上讲,应该可以用mod_python来完成。 如果人们有其他人build议的问题,很可能是因为他们没有设置mod_python如何正确使用解释器。 即使子解释器设置正确,因此每个Django实例都是自己的,但是可以通过时区,语言和语言环境设置来解决问题,因为这些设置是通过环境variables来控制的,环境variables是进程的全局variables,而不是局部的子解释器。 这虽然与使用的不同版本的Django无关,并且可能在任何情况下在Apache进程中运行多个应用程序。 在embedded模式下,mod_wsgi也会出现同样的问题。 最安全的方法是使用mod_wsgi守护进程模式。 这样每个Django实例都在自己的进程中,并且不能相互干扰。