在mod_python下运行多个Django项目,而不使用VirtualHosts

在mod_python下运行多个Django项目,而不使用VirtualHosts,django,mod-python,apache-config,Django,Mod Python,Apache Config,我在同一台机器上有两个django项目。它们使用标准的django/apache/mod_python配置进行设置,基本上: <Location "/mysite"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings PythonOption django.root /m

我在同一台机器上有两个django项目。它们使用标准的django/apache/mod_python配置进行设置,基本上:

<Location "/mysite">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings
    PythonOption django.root /mysite
    PythonDebug On
    PythonPath "['/path/to/project/parent'] + sys.path"
</Location>

SetHandler python程序
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_设置_模块mysite.SETTINGS
PythonOption django.root/mysite
蟒蛇
PythonPath“['/path/to/project/parent']+sys.path”
其中mysite因两个项目而异(在Location指令、DJANGO_SETTINGS_模块和DJANGO.root中)。蟒蛇也各不相同

当两个位置指示中只有一个到位时,无论哪个位置适合工程。两种配置都可以单独工作

当我有两个位置指令(指向不同的url路径)时,我只能访问一个站点。我有“/portal”和“/apitest”的位置指令,当我转到时,我总是从提供服务的“/portal”获取代码

仅仅通过包含多个位置指令就可以为同一主机上的两个django站点提供服务,还是有必要使用VirtualHosts

谢谢,
David

文档似乎建议您可能需要为每个位置块设置不同的
PythonInterpreter
值。这能解决问题吗

如果需要将两个Django安装放在同一个VirtualHost中(或者放在共享同一服务器名称的不同VirtualHost块中),则需要采取特别的预防措施,以确保mod_python的缓存不会把事情搞砸。使用
PythonInterpreter
指令为不同的
指令提供单独的解释器:


服务器名www.example.com
# ...
SetEnv DJANGO_设置_模块mysite.SETTINGS
蟒蛇
SetEnv DJANGO_设置_模块mysite.other_设置
蟒蛇网

<VirtualHost *>
    ServerName www.example.com
    # ...
    <Location "/something">
        SetEnv DJANGO_SETTINGS_MODULE mysite.settings
        PythonInterpreter mysite
    </Location>

    <Location "/otherthing">
        SetEnv DJANGO_SETTINGS_MODULE mysite.other_settings
        PythonInterpreter othersite
    </Location>
</VirtualHost>