django多重安装问题

时间:2010-01-28 10:03:26

标签: django

让django提供不同的设置文件&基于子域的数据库。虚拟主机条目手动添加到apache。

目前有两个具有不同数据库的子域。第一个工作正常,第二个没有显示任何CSS /图像。

Apache配置为,有两个

<VirtualHost *:80>
ServerName test.domain.com
ServerAlias test.domain.com

DocumentRoot /var/www/site/

    <Location "/">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE site.settings.test
        PythonDebug On
        PythonPath "['/var/www/site/'] + sys.path"
    </location>
    <location "/public/media">
        SetHandler None
    </location>
    <location "/public/admin_media">
        SetHandler None
    </location>
    <location "/static">
        SetHandler None
    </location>
 </VirtualHost>

显示css / images问题的子域内容位于/ public / media文件夹中。如果直接通过http://test.domain.com/public/media/images/image.jpg访问,则图片就在那里。

3 个答案:

答案 0 :(得分:0)

1)请注意,您没有加载默认的“settings.py”,而是“settings / test.py”。

SetEnv DJANGO_SETTINGS_MODULE site.settings.test

所以也许应该是:

SetEnv DJANGO_SETTINGS_MODULE site.settings

SetEnv DJANGO_SETTINGS_MODULE site.settings.production

2)确保你有这个,无论你的设置文件是什么:

DEBUG = False
MEDIA_URL = "/public/media"
ADMIN_MEDIA_PREFIX = "/public/admin_media"

答案 1 :(得分:0)

我建议你为两个不同的子域使用两个不同的虚拟主机。

子域名test1.domain.com          ServerName test1.domain.com

DocumentRoot /var/www/site/

    <Location "/">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE site.settings.test
        PythonDebug On
        PythonPath "['/var/www/site/'] + sys.path"
    </location>
    <location "/public/media">
        SetHandler None
    </location>
    <location "/public/admin_media">
        SetHandler None
    </location>
    <location "/static">
        SetHandler None
    </location>
 </VirtualHost>

子域名test2.domain.com          ServerName test2.domain.com

DocumentRoot /var/www/site/

    <Location "/">
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE site.settings.test
        PythonDebug On
        PythonPath "['/var/www/site/'] + sys.path"
    </location>
    <location "/public/media">
        SetHandler None
    </location>
    <location "/public/admin_media">
        SetHandler None
    </location>
    <location "/static">
        SetHandler None
    </location>
 </VirtualHost>

答案 2 :(得分:0)

这是会话/ cookie问题。将SESSION_COOKIE_DOMAIN添加到带子域名的settings.py,现在似乎工作正常。