Questa risposta fa l'ipotesi che si desidera avere due nomi di dominio ogni esecuzione progetti Django separate, ma ospitati dallo stesso server Apache. Se questo non è il tuo caso, perfeziona la tua domanda!
Per iniziare con avrete bisogno di due VirtualHost
voci nella conf apache (chiamiamolo vostri siti domain1.co.uk
e 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>
Sono necessari i 2 file WSGI (sottolineato due nella conf sopra)
/opt/django/project/domain1/domain1.wsgi
/opt/django/project/domain1/domain2.wsgi
e avrà un aspetto simile
import os
import sys
from django.core.handlers.wsgi import WSGIHandler
os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
# or project.domain1_settings
application = WSGIHandler()
sul settings.py
assicurarsi che entrambi i file delle impostazioni hanno differenza SITE_ID = 1
o SITE_ID = 2
e che si punta al corretto urls.py
ROOT_URLCONF = 'urls'
o
ROOT_URLCONF = 'domain1_urls'
Gran parte di questa domanda è stata provenienti da esperienza personale e questo post blog. Le directory del tuo progetto e i nomi di dominio sembrano un po 'confusi, ho fatto del mio meglio per inserirli nei posti corretti qui, ma dovrai adeguarti per i tuoi scopi.
Ulteriori
Se si dispone di due siti in esecuzione dallo stesso server, si dovrà essere molto attenti a mantenere la coerenza nel directory di progetto, le directory dei file statici e file di impostazioni ecc Dalla tua domanda che dici i tuoi file di impostazioni sono /opt/django/project/settings.py
e /opt/django/project/domain1_settings.py
Ciò è abbastanza confuso in quanto sembra che tu abbia una directory di progetto (/opt/django/project
). Consiglio vivamente una separazione più forte; come ho descritto in precedenza, magari impostando i vostri progetti (domain1
e domain2
) nella directory
/opt/django/project/domain1/
/opt/django/project/domain2/
con impostazioni corrispondenti file
/opt/django/project/domain1/settings.py
/opt/django/project/domain2/settings.py
ecc Questo dovrebbe rendere più facile individuare cosa non va dove.
Grazie per la risposta. Ho aggiunto le impostazioni che hai suggerito, ma sto vedendo un errore di 500 tramite apache. Quando si passa attraverso i registri mostra che non è in grado di importare il mio nuovo file di impostazioni. Il nuovo file di impostazioni è all'interno della cartella del progetto maint e ho aggiunto la linea nel mio file WSGI che punta ad esso ----> os.environ [ 'DJANGO_SETTINGS_MODULE'] = 'domain1_settings' Grazie, – felix001
Dopo aver aggiunto il correggi il percorso sys del mio file wgsi e assicurandoti che tutte le mie importazioni di progetti/app fossero costanti, tutto iniziò a funzionare. Molte grazie ... – felix001