gpt4 book ai didi

django - Django中的多个站点

转载 作者:行者123 更新时间:2023-12-04 13:28:02 27 4
gpt4 key购买 nike

有谁知道如何向Django添加多个域。
我尝试按照这里Multiple Sites under single Django project的指南进行操作,但没有运气。

我的配置看起来像这样

设置

/opt/django/project/settings.py

/opt/django/project/domain1_settings.py

网址

/opt/django/project/urls.py

/opt/django/project/domain1_urls.py

wsgi

/opt/django/project/domain1/domain1.wsgi

Apache

/etc/httpd/conf.d/django.conf

<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>

当我重新启动apache时,我看不到任何错误,但是当我转到该站点时,我将被发送到在主httpd.conf中配置的(非django)域。

谢谢,

最佳答案

该答案假设您要拥有两个域名,每个域名运行单独的Django项目,但要从同一Apache服务器托管。如果不是这种情况,请完善您的问题!

首先,您需要在apache conf中添加两个VirtualHost条目(我们将您的网站称为domain1.co.ukdomain2.co.uk)

# Virtual hosts setup
NameVirtualHost *
<VirtualHost *>
ServerName domain1.co.uk

WSGIDaemonProcess APPLICATION_NAME processes=5 python-path=/opt/django/project/domain1:/home/USERNAME/webapps/APPLICATION_NAME/lib/python2.6 threads=1
WSGIScriptAlias / /opt/django/project/domain1/domain1.wsgi
</VirtualHost>

<VirtualHost *>
ServerName domain2.co.uk

WSGIDaemonProcess APPLICATION_NAME_www processes=5 python-path=/opt/django/project/domain2:/home/USERNAME/webapps/APPLICATION_NAME/lib/python2.6 threads=1
WSGIScriptAlias / /opt/django/project/domain2/domain2.wsgi
</VirtualHost>

您还将需要2个wsgi文件(在上面的conf中指向两个)
/opt/django/project/domain1/domain1.wsgi
/opt/django/project/domain1/domain2.wsgi

看起来像
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 = 1SITE_ID = 2不同,并且您指向正确的 urls.py
ROOT_URLCONF = 'urls'

或者
ROOT_URLCONF = 'domain1_urls'

这个问题大部分来自个人经验和此 blog帖子。您的项目目录和域名似乎有些困惑,我已尽力将它们放入此处的正确位置,但您需要根据自己的目的进行调整。

其他

如果您有两个站点从同一服务器运行,则必须非常小心以保持项目目录,静态文件目录和设置文件等的一致性。
从您的问题中,您说您的设置文件是 /opt/django/project/settings.py/opt/django/project/domain1_settings.py。这似乎很令人困惑,因为您似乎拥有一个项目目录( /opt/django/project)。我强烈建议加强隔离;如上文所述,也许在目录中设置项目( domain1domain2)
/opt/django/project/domain1/
/opt/django/project/domain2/

带有相应的设置文件
/opt/django/project/domain1/settings.py
/opt/django/project/domain2/settings.py

等。这样可以更容易发现问题出在哪里。

关于django - Django中的多个站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14923083/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com