この回答は、2つのドメイン名がそれぞれ別々のDjangoプロジェクトを実行しているが、同じApacheサーバーからホストされていることを前提としています。そうでない場合は、質問を絞り込んでください。
まずVirtualHost
、apache confに2つのエントリが必要です(サイトdomain1.co.uk
を呼び出してdomain2.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で2つ指摘されています)
/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 = 1
、またはSITE_ID = 2
正しいものを指していることを確認してくださいurls.py
ROOT_URLCONF = 'urls'
また
ROOT_URLCONF = 'domain1_urls'
この質問の多くは、個人的な経験とこのブログ投稿から得られたものです。あなたのプロジェクトディレクトリとドメイン名は少し紛らわしいようです。私はそれらをここの正しい場所に合わせるために最善を尽くしましたが、あなたはあなた自身の目的のために調整する必要があります。
追加
同じサーバーから2つのサイトを実行している場合は、プロジェクトディレクトリ、静的ファイルディレクトリ、設定ファイルなどの一貫性を維持するために細心の注意を払う必要があり/opt/django/project/settings.py
ます /opt/django/project/domain1_settings.py
。プロジェクトディレクトリが1つあること(/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
これにより、どこで何が問題になっているのかを簡単に特定できるようになります。