現在、Apache (および wsgi) を使用して単一の Django プロジェクトを共有したい 2 つのドメインがあります。ここで見つけた次のガイドを使用しました: http://www.fir3net.com/Django/how- to-serve-multiple-domains-from-within-a-single-django-project.html
注意: ドメイン 1 はデータベースを使用していませんが、ドメイン 2 は使用しています。現在、メインの settings.py ファイル内に単一のデータベースが構成されています。
私が最初に抱えた問題は、ドメイン 1 のテンプレートは見つかったものの、ドメイン 2 のテンプレートを見つけることができなかったことです。いくつかのトラブルシューティングの後、TEMPLATE_DIR を domain2_settings.py ファイルに追加しました。これはメインの settings.py ファイルによって取得されると予想していましたが。現在、domain2 がデータベースを見つけることができないというエラーが発生しており、デバッグ出力から、データベースが割り当てられていないことが示されています。データベース設定がメインの settings.py ファイルから取得されることを期待していましたが。
私のレイアウトの要約は次のとおりです。
/opt/
`-- django
|
`-- myproject
|-- __init__.py
|-- domain1
| |-- __init__.py
| |-- domain1.wsgi
| |-- domain1_settings.py
| |-- domain1_urls.py
| |-- models.py
| |-- tests.py
| |-- views.py
|-- domain2
| |-- __init__.py
| |-- domain2.wsgi
| |-- domain2_settings.py
| |-- domain2_urls.py
| |-- models.py
| |-- tests.py
| |-- views.py
|-- manage.py
|-- settings.py
|-- templates
| |-- domain1-base.html
| |-- domain2-base.html
`-- urls.py
設定.py
[root@william myproject]# cat settings.py
# Django settings for myproject project.
DEBUG = False
TEMPLATE_DEBUG = DEBUG
ADMINS = (
# ('Your Name', 'your_email@example.com'),
)
MANAGERS = ADMINS
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': '123', # Or path to database file if using sqlite3.
'USER': '123', # Not used with sqlite3.
'PASSWORD': '##########', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '' # Set to empty string for default. Not used with sqlite3.
},
}
domain2_settings.py
[root@william myproject]# cat domain2/domain2_settings.py
from settings import *
DEBUG = True
TEMPLATE_DEBUG = DEBUG
SITE_ID = 2
ROOT_URLCONF = 'domain2.domain2_urls'
TEMPLATE_DIRS = (
"/opt/django/myproject/templates"
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
# Uncomment the next line to enable the admin:
# 'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
'domain2',
)
私はこれを正しい方法で行っていますか (つまり、複数のドメイン、単一のプロジェクト、Apache、および単一のデータベースを使用しています)?