在mod_python下运行多个Django项目,而不使用VirtualHosts
我在同一台机器上有两个django项目。它们使用标准的django/apache/mod_python配置进行设置,基本上:在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
<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>