Django的多个站点
有人知道如何向Django添加多个域吗。 我试着跟着导游走,但运气不好 我的配置如下所示 设置 /opt/django/project/settings.py /opt/django/project/domain1_settings.py Url /opt/django/project/url.py /opt/django/project/domain1_url.py wsgi /opt/django/project/domain1/domain1.wsgi Apache /etc/httpd/conf.d/django.confDjango的多个站点,django,apache,virtualhost,Django,Apache,Virtualhost,有人知道如何向Django添加多个域吗。 我试着跟着导游走,但运气不好 我的配置如下所示 设置 /opt/django/project/settings.py /opt/django/project/domain1_settings.py Url /opt/django/project/url.py /opt/django/project/domain1_url.py wsgi /opt/django/project/domain1/domain1.wsgi Apache /etc/httpd/
<VirtualHost * >
ServerName domain1.co.uk
ServerAlias www.domain1.co.uk direct.domain1.co.uk
WSGIDaemonProcess domain1 processes=5 python-path=/usr/bin/python threads=1
WSGIScriptAlias / /opt/django/project/domain1/domain1.wsgi
ErrorLog logs/domain1-error.log
CustomLog logs/domain1-access.log common
</VirtualHost>
ServerName域名1.co.uk
ServerAlias www.domain1.co.uk direct.domain1.co.uk
WSGIDaemonProcess domain1进程=5 python路径=/usr/bin/python线程=1
WSGIScriptAlias//opt/django/project/domain1/domain1.wsgi
ErrorLog日志/domain1-error.log
CustomLog日志/domain1-access.log公共
当我重新启动apache时,我没有看到任何错误,但是当我转到站点时,我被发送到主httpd.conf中配置的(非django)域
谢谢,这个答案假设您希望有两个域名,每个域名运行单独的Django项目,但托管在同一个Apache服务器上。如果不是这样,请改进您的问题 首先,在apache配置中需要两个
VirtualHost
条目(让我们调用您的站点domain1.co.uk
和domain2.co.uk
)
看起来就像
import os
import sys
from django.core.handlers.wsgi import WSGIHandler
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
# or project.domain1_settings
application = WSGIHandler()
在settings.py
上,确保两个设置文件具有差异SITE_ID=1
或SITE_ID=2
,并且您指向正确的url.py
ROOT_URLCONF = 'urls'
或
这个问题的大部分来源于个人经验和这篇文章。您的项目目录和域名似乎有点混乱,我已经尽了最大努力将它们放在正确的位置,但是您需要根据自己的目的进行调整
附加的
如果有两个站点在同一台服务器上运行,则必须非常小心地维护项目目录、静态文件目录和设置文件等的一致性。
从您的问题中,您说您的设置文件是/opt/django/project/settings.py
和/opt/django/project/domain1\u settings.py
,这相当令人困惑,因为您似乎只有一个项目目录(/opt/django/project
)。我强烈建议加强分离;正如我上面所描述的,可能在目录中设置项目(domain1
和domain2
)
/opt/django/project/domain1/
/opt/django/project/domain2/
具有相应的设置文件
/opt/django/project/domain1/settings.py
/opt/django/project/domain2/settings.py
等等。这样可以更容易地发现哪里出了问题。谢谢您的回复。我添加了您建议的设置,但我通过apache看到一个500错误。查看日志时,会显示无法导入我的新设置文件。新的设置文件位于maint项目文件夹中,我在wsgi文件中添加了一行,指向它---->os.environ['DJANGO_settings_MODULE']='domain1_settings',谢谢,在将正确的sys路径添加到我的wgsi文件并确保所有项目/应用程序导入都是常量之后,一切都开始工作。非常感谢。。。
ROOT_URLCONF = 'domain1_urls'
/opt/django/project/domain1/
/opt/django/project/domain2/
/opt/django/project/domain1/settings.py
/opt/django/project/domain2/settings.py