2013-02-17 19 views
6

क्या कोई जानता है कि Django में एकाधिक डोमेन कैसे जोड़ें। मैंने गाइड के बाद Multiple Sites under single Django project पर कोई भाग्य नहीं दिया है।Django में एकाधिक साइटें

मेरे विन्यास इस

सेटिंग

/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

अपाचे

/आदि /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> 

जब मैं अपाचे को पुनरारंभ करता हूं तो मुझे कोई त्रुटि नहीं दिखाई देती है, लेकिन जब मैं साइट पर जाता हूं तो मुझे मुख्य httpd.conf में कॉन्फ़िगर किया गया (non django) डोमेन भेजा जाता है।

धन्यवाद,

उत्तर

13

इस उत्तर धारणा है कि आप दो डोमेन नाम प्रत्येक अलग Django परियोजनाओं चल रहा है करना चाहते हैं बनाता है, लेकिन एक ही अपाचे सर्वर से होस्ट की जा रही। यदि यह मामला नहीं है, तो कृपया अपना प्रश्न परिशोधित करें!

शुरू करने के लिए आप अपने अपाचे conf में दो VirtualHost प्रविष्टियों की आवश्यकता होगी

# 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 फ़ाइलों की आवश्यकता होगी (के अपनी साइटों domain1.co.uk और domain2.co.uk कॉल) (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() 
कुछ ऐसी दिखाई देगी 0

settings.py रैंप सुनिश्चित करें कि दोनों सेटिंग्स फ़ाइलों अंतर SITE_ID = 1 या SITE_ID = 2 है बनाने के लिए और आप

ROOT_URLCONF = 'urls' 

या

ROOT_URLCONF = 'domain1_urls' 

इस सवाल के ज्यादातर व्यक्तिगत अनुभव से प्राप्त किया गया है सही urls.py को इंगित कि और यह blog पोस्ट। आपकी प्रोजेक्ट निर्देशिकाएं और डोमेन नाम थोड़ा उलझन में प्रतीत होते हैं, मैंने यहां सही जगहों पर फिट करने के लिए अपना सर्वश्रेष्ठ प्रयास किया है, लेकिन आपको अपने उद्देश्यों के लिए समायोजित करने की आवश्यकता होगी।

अतिरिक्त

आप दो साइटों एक ही सर्वर से चल रहा है, तो आप आदि परियोजना निर्देशिका से अधिक स्थिरता, स्थिर फ़ाइल निर्देशिका और सेटिंग्स फ़ाइलों बनाए रखने के लिए अपने प्रश्न आप कहते हैं से बहुत सावधान रहना होगा आपकी सेटिंग्स फाइलें /opt/django/project/settings.py और /opt/django/project/domain1_settings.py यह काफी भ्रमित है क्योंकि ऐसा लगता है कि आपके पास एक प्रोजेक्ट निर्देशिका है (/opt/django/project)। मैं दृढ़ता से मजबूत अलगाव की सिफारिश करता हूं; जैसा कि मैंने ऊपर का वर्णन है, शायद निर्देशिका

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

संगत सेटिंग के साथ में अपनी परियोजनाओं (domain1 और domain2) की स्थापना फ़ाइलें

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

आदि इससे पहचानना क्या गलत कहाँ जा रहा है बनाना चाहिए।

+0

आपके उत्तर के लिए धन्यवाद। मैंने आपके द्वारा सुझाई गई सेटिंग्स को जोड़ा है, लेकिन मैं अपाचे के माध्यम से 500 एरो देख रहा हूं। लॉग के माध्यम से जाने पर यह दिखाता है कि यह मेरी नई सेटिंग्स फ़ाइल आयात करने में असमर्थ है। नई सेटिंग फ़ाइल maint परियोजना फ़ोल्डर के भीतर है और मैं लाइन मेरी WSGI फ़ाइल इसे करने के लिए ----> os.environ [ 'DJANGO_SETTINGS_MODULE'] = 'domain1_settings' धन्यवाद – felix001

+0

ओर इशारा करते हुए, को जोड़ने के बाद भीतर जोड़ लिया है मेरी wgsi फ़ाइल के लिए सही sys पथ और यह सुनिश्चित करना कि मेरे सभी प्रोजेक्ट/ऐप आयात लगातार काम करना शुरू कर रहे थे। कई बहुत धन्यवाद ... – felix001

संबंधित मुद्दे