2013-02-17 21 views
6

Czy ktoś wie, jak dodać wiele domen do Django. Próbowałem postępować zgodnie z instrukcjami tutaj Multiple Sites under single Django project bez powodzenia.Wiele witryn w Django

Moja konfiguracja wygląda następująco

Ustawienia

/opt/django/project/settings.py

/opt/django/project/domain1_settings.py

Url

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

Po ponownym uruchomieniu apache nie widzę żadnych błędów, ale kiedy wchodzę na stronę, wysyłam ją do domeny (nie django), która jest skonfigurowana w głównym pliku httpd.conf.

Dzięki,

Odpowiedz

13

Odpowiedź ta zakłada, że ​​chcesz mieć dwie nazwy domeny każdy uruchomiony oddzielnych projektów Django, ale organizowany z tego samego serwera Apache. Jeśli tak nie jest, prosimy sprecyzować swoje pytanie!

Na początek trzeba dwa VirtualHost wpisy w apache conf (nazwijmy witryn domain1.co.uk i 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> 

musisz również 2 pliki WSGI (wskazał dwa w konf powyżej)

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

i będzie wyglądać jak

import os 
import sys 
from django.core.handlers.wsgi import WSGIHandler 

os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings' 
# or  project.domain1_settings 
application = WSGIHandler() 

na settings.py upewnić się, że oba pliki ustawień różnica SITE_ID = 1 lub SITE_ID = 2 a wskazaniu poprawnej urls.py

ROOT_URLCONF = 'urls' 

lub

ROOT_URLCONF = 'domain1_urls' 

Wiele z tych kwestii została pochodzą z własnego doświadczenia i ten post blog. Twoje katalogi projektów i nazwy domen wydają się być trochę zagmatwane, zrobiłem co mogłem, aby dopasować je do właściwych miejsc tutaj, ale będziesz musiał dostosować się do własnych celów.

dodatkowe

Jeśli masz dwa miejsca uruchomione z tego samego serwera, trzeba być bardzo ostrożnym, aby zachować spójność nad katalogów projektów, statyczne katalogów plików i plików ustawień itp Z Twojego pytania mówisz twoje pliki ustawień to /opt/django/project/settings.py i /opt/django/project/domain1_settings.py Jest to dość mylące, ponieważ wydaje się, że masz jeden katalog projektu (/opt/django/project). Zdecydowanie zaleciłbym silniejszą separację; Opiszę jak wyżej, może ustawienie projektów (domain1 i domain2) w katalogach

/opt/django/project/domain1/ 
/opt/django/project/domain2/ 

z odpowiednimi ustawieniami plików

/opt/django/project/domain1/settings.py 
/opt/django/project/domain2/settings.py 

itd. Powinno to ułatwić dostrzec, co się dzieje złego gdzie.

+0

Dziękuję za odpowiedź. Dodałem ustawienia, które zasugerowałeś, ale widzę 500 erro poprzez apache. Podczas przeglądania logów pokazuje, że nie jest w stanie zaimportować mojego nowego pliku ustawień. Nowy plik ustawień znajduje się w folderze projektu maint i mam dodaną linię w pliku wsgi wskazującą na to ----> os.environ ['DJANGO_SETTINGS_MODULE'] = 'domain1_settings' Dzięki, – felix001

+0

Po dodaniu poprawiono ścieżkę sys do pliku wgsi i upewniałem się, że wszystkie moje importowanie projektów/aplikacji były stałe, wszystko zaczęło działać. Many Many Thanks ... – felix001

Powiązane problemy