Drupal 8 मल्टीसाइट
इस गाइड में Drupal 8 मल्टीसाइट सेटअप के लिए आवश्यक चरणों को शामिल किया गया है। यह गाइड अभी विकासाधीन है और केवल कुछ कॉन्फ़िगरेशन उदाहरण प्रस्तुत किए गए हैं। अन्य विकल्प जैसे HTTPS, विभिन्न वेब सर्वर और डेटाबेस, और उन्नत वर्चुअल होस्ट कॉन्फ़िगरेशन भी उपलब्ध हैं।
हालाँकि, यह ध्यान देना महत्वपूर्ण है कि Aegir होस्टिंग सिस्टम का उपयोग करना अधिक उपयुक्त है। यह आपके लिए सारी जटिल प्रक्रियाओं को स्वचालित रूप से संभालता है, जिसमें Apache और Nginx के लिए वर्चुअल होस्ट सेटअप, HTTPS सपोर्ट जोड़ना, Composer कमांड चलाना आदि शामिल हैं। देखें “प्लेटफ़ॉर्म” सेटअप दस्तावेज़ — Aegir शब्दावली में यह मल्टीसाइट कोडबेस को संदर्भित करता है।
प्रक्रिया का अवलोकन:
1. Drupal 8 का एक इंस्टेंस इंस्टॉल करें जो हमारे मल्टीसाइट सेटअप के लिए “मुख्य साइट” (root site) के रूप में काम करेगा। इस उदाहरण में, रूट साइट का नाम d8multisite होगा, यह d8multisite.com पर उपलब्ध होगी और /var/www/d8multisite में इंस्टॉल की जाएगी।
2. एक मल्टीसाइट साइट बनाएं जिसका नाम site1 हो, जो site1.d8multisite.com पर उपलब्ध हो।
3. site1 को इस तरह कॉन्फ़िगर करें कि उसके अपने मॉड्यूल्स हों, जो रूट साइट से अलग हों।
चरण 1: मुख्य (मास्टर) साइट बनाना
शुरू करने के लिए, अपने सर्वर पर Drupal 8 की एक कॉपी इंस्टॉल करें। यदि आप Drupal इंस्टॉलेशन से परिचित नहीं हैं, तो Drupal 8 इंस्टॉलेशन दस्तावेज़ पढ़ें।
इस उदाहरण में, हम निम्नलिखित चरणों का पालन करके Drupal स्थापित करते हैं:
1.1: मल्टीसाइट रूट साइट के लिए एक डेटाबेस बनाएं, जैसे: d8multisite।
1.2: Drupal 8 की एक कॉपी डाउनलोड करें और इसे अपने वेब डायरेक्टरी में एक्सट्रैक्ट करें।
1.3: रूट साइट के लिए एक वर्चुअल होस्ट परिभाषा बनाएं। वर्चुअल होस्ट कॉन्फ़िगरेशन के बारे में पढ़ें। Apache के लिए वर्चुअल होस्ट कॉन्फ़िगरेशन का उदाहरण: Nginx के लिए देखें आधिकारिक गाइड.
<VirtualHost *:80> # Drupal 8 मल्टीसाइट रूट साइट के लिए वर्चुअल होस्ट कॉन्फ़िगरेशन ServerAdmin me@domain.com DocumentRoot /var/www/d8multisite ServerName d8multisite.com ServerAlias www.d8multisite.com <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/d8multisite> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/d8multisite_error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/d8multisite_access.log combined </VirtualHost>
1.4: d8multisite.com पर जाएँ और इंस्टॉलेशन इंटरफ़ेस का पालन करते हुए Drupal स्थापित करें।
चरण 2: पहला मल्टीसाइट सेटअप करें
अब जब हमने रूट साइट सेटअप कर ली है, तो हम अपनी पहली साइट site1 को सेटअप करेंगे। इस प्रक्रिया में निम्न चरण शामिल हैं:
2.1: अपने मल्टीसाइट डायरेक्टरी में site1 के लिए एक फ़ोल्डर बनाएँ: /d8multisite/sites/site1.d8multisite.com
2.2: साइट 1 के लिए एक डेटाबेस बनाएँ, जैसे: d8multisite_site1
2.3: /d8multisite/sites/example.sites.php
की कॉपी बनाएँ और उसे /d8multisite/sites/sites.php
नाम दें।
2.4: sites.php
को संपादित करें ताकि इसकी अंतिम पंक्ति इस तरह दिखे:
# रूट Drupal साइट को site1 के बारे में सूचित करें: $sites['site1.d8multisite.com'] = 'site1.d8multisite.com';
2.5: site1 के लिए एक वर्चुअल होस्ट बनाएँ। ध्यान दें कि यह वर्चुअल होस्ट रूट साइट की ओर इशारा करना चाहिए, उसके सबफ़ोल्डर की ओर नहीं। आप चाहें तो नई साइट को रूट साइट के ServerAlias
के रूप में भी जोड़ सकते हैं। लेकिन इस उदाहरण में हम Apache के लिए site1 का एक अलग वर्चुअल होस्ट बनाएँगे:
<VirtualHost *:80> ServerAdmin me@domain.com DocumentRoot /var/www/d8multisite ServerName site1.d8multisite.com <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/d8multisite> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/site1-d8multisite_error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/site1-d8multisite_error.log combined </VirtualHost>
2.6: रूट फ़ोल्डर से sites/default/default.settings.php
की कॉपी करें और उसे नई साइट डायरेक्टरी में settings.php
नाम से रखें:
#from the drupal root folder cp sites/default/default.settings.php sites/site1.d8multisite.com/settings.php
2.7: साइट के डोमेन पर जाकर Drupal इंस्टॉलेशन प्रक्रिया पूरी करें।
आप हर बार जब नई साइट बनाना चाहें, इन चरणों को दोहरा सकते हैं। आप example.com और site1.anotherdomain.com जैसे अलग-अलग डोमेन भी उपयोग कर सकते हैं। डोमेन, URL और साइट सबडायरेक्टरी नामों के बारे में अधिक जानकारी के लिए देखें।
चरण 3: प्रत्येक साइट के लिए मॉड्यूल सक्षम करें
कुछ मामलों में, आप चाह सकते हैं कि आपके मल्टीसाइट में से किसी एक साइट में अपने स्वयं के मॉड्यूल हों। इसे सक्षम करने के लिए, आपको लक्षित साइट की फ़ोल्डर में उपयुक्त डायरेक्टरीज़ बनानी होंगी। देखें Drupal 8 में मल्टीसाइट फ़ोल्डर संरचना.
इस उदाहरण में, हम site1 को अपने स्वयं के मॉड्यूल्स की अनुमति देंगे:
1. modules
नामक फ़ोल्डर बनाएँ: /d8multisite/sites/site1.d8multisite.com/modules
2. Apache को इस फ़ोल्डर में लिखने की अनुमति दें: chown www-data /d8multisite/sites/site1.d8multisite.com/modules
3. इसकी जाँच करें:
1) site1 सबफ़ोल्डर से बाहर जाएँ (यानी रूट साइट पर) और Drush से Pathauto मॉड्यूल इंस्टॉल करें: drush dl pathauto
2) site1 सबफ़ोल्डर में जाएँ और Display Suite मॉड्यूल इंस्टॉल करें: drush dl ds
3) दोनों साइटों पर जाएँ और पुष्टि करें:
- Pathauto दोनों साइटों पर उपलब्ध है
- Display Suite केवल site1 पर उपलब्ध है
नोट: आप यही तरीका थीम्स, लाइब्रेरीज़ और फ़ाइलों के लिए भी लागू कर सकते हैं। इसके लिए अतिरिक्त परीक्षण और दस्तावेज़ आवश्यक हैं।
मल्टीसाइट में Drush का उपयोग
आप -l विकल्प का उपयोग कर सकते हैं:
drush -l example.com command
या साइट उपनाम (alias):
drush @alias command
यह देखने के लिए कि कौन से उपनाम उपयोग में हैं, चलाएँ:
drush site:alias
इसका आउटपुट कुछ इस प्रकार हो सकता है:
@sub1.dev :
root: /var/www/mydomain.com/web
uri: «https://sub1.mydomain.com»
@default.dev :
root: /var/www/mydomain.com/web
uri: «https://sub2.mydomain.com/»
@third.dev :
root: /var/www/mydomain.com/web
uri: «https://thirddomain.com»
और सही Drush कमांड इस प्रकार होगी:
drush @sub1 updb
नोट: हम उपनाम में “.dev” का उपयोग नहीं करते हैं।