1.2.1. Drupal 8 के मॉड्यूल और कोर को अपडेट करना
Drupal 8 के मॉड्यूल और कोर के लिए बहुत बार अपडेट जारी किए जाते हैं। हालांकि, हर अपडेट इंस्टॉल करना ज़रूरी नहीं होता — मुख्य रूप से सुरक्षा अपडेट पर ध्यान देना चाहिए। Drupal ऐसे अपडेट को लाल रंग में हाइलाइट करता है। अपडेट का तरीका इस पर निर्भर करता है कि आपने Drupal कैसे इंस्टॉल किया था — अगर आपने Composer के जरिए प्रोजेक्ट बनाया था, तो आप Drupal को Composer से अपडेट कर सकते हैं; लेकिन अगर आपने Drupal को drupal.org से डाउनलोड किया था, तो आपको इसे मैन्युअली अपडेट करना होगा।
Composer के माध्यम से Drupal अपडेट करना
Composer के जरिए Drupal अपडेट करना एक साधारण कार्य है, जिसे सिर्फ एक कमांड से किया जा सकता है:
composer update drupal/core --with-dependencies
यहाँ --with-dependencies बहुत महत्वपूर्ण है, ताकि Drupal के लिए आवश्यक सभी अतिरिक्त पैकेज भी अपडेट हो जाएं। इसके बाद आपको update.php
चलाना होगा, या फिर drush updatedb
या drupal update:execute
कमांड का उपयोग करना होगा।
Composer और Drush के बिना Drupal को मैन्युअली अपडेट करना
आप इस लेख में Drupal को मैन्युअली अपडेट करने की विस्तृत जानकारी भी पढ़ सकते हैं:
https://drupalbook.org/ru/drupal/122-obnovlenie-drupal-8-bez-drush-i-bez-composer
Drupal 8 को अपडेट करने के बारे में आधिकारिक दस्तावेज यहाँ उपलब्ध हैं:
https://www.drupal.org/node/1494290
हालाँकि, मुझे यह बात चिंतित करती है कि आधिकारिक गाइड सभी पुराने Drupal फाइलें हटाने की सलाह देता है, जबकि उनमें कभी-कभी थर्ड-पार्टी लाइब्रेरीज़ भी हो सकती हैं — जैसे कि Drupal Commerce के लिए।
1. इसलिए, अपडेट शुरू करने से पहले, अपने पूरे साइट और डेटाबेस का बैकअप लें।
आप डेटाबेस का बैकअप Adminer के माध्यम से ले सकते हैं। इसके बारे में विस्तार से यहाँ पढ़ें:
https://drupalbook.org/ru/drupal/15-vybor-hostinga-pokupka-domennogo-imeni-perenos-sayta-na-hosting
2. 8.x शाखा के लिए Drupal या मॉड्यूल का नवीनतम संस्करण डाउनलोड करें।
3. डाउनलोड किए गए पैकेज को अलग फ़ोल्डर में अनज़िप करें। जांचें कि vendor
फ़ोल्डर में कुछ आवश्यक लाइब्रेरीज़ तो नहीं छूटी हैं, क्योंकि नई रिलीज़ में अतिरिक्त लाइब्रेरीज़ जोड़ी जा सकती हैं। उदाहरण के लिए, Drupal Commerce में कई अतिरिक्त PHP लाइब्रेरीज़ शामिल होती हैं:
अपडेट करने से पहले साइट का बैकअप तीन बार जांच लें।
अगर आप बस फाइलों को ओवरराइट करके अपडेट करते हैं, तो कभी-कभी साइट टूट सकती है — जैसे मैंने बीटा से बीटा अपडेट में देखा। लेकिन 8.0.1 से 8.0.5 तक इसी तरह अपडेट करना सफल रहा। हालांकि, यह तरीका 8.1.0 जैसी बड़ी अपडेट्स के लिए सुरक्षित नहीं है।
4. साइट को मेंटेनेंस मोड में डालें ताकि विज़िटर अपडेट के दौरान त्रुटियाँ उत्पन्न न करें:
/admin/config/development/maintenance
अपडेट के बाद चेकमार्क हटाना न भूलें ताकि साइट सामान्य रूप से काम करे।
5. अब Drupal की सभी फाइलें हटाएँ, /sites, /themes और /modules को छोड़कर।
- /sites — इसमें सामग्री, तस्वीरें, कॉन्फ़िगरेशन और जनरेट की गई फाइलें होती हैं।
- /themes — इसमें कस्टम थीम्स होती हैं।
- /modules — इसमें आपके द्वारा स्थापित अतिरिक्त मॉड्यूल होते हैं।
कृपया यह सब हटाने से पहले गाइड को पूरी तरह पढ़ लें और बैकअप सुनिश्चित करें। जब तक नई Drupal फाइलें अपलोड नहीं की जातीं, साइट काम नहीं करेगी। ध्यान दें कि Drupal में लगभग 10,000 फाइलें होती हैं, इसलिए FTP से धीमी इंटरनेट कनेक्शन पर कॉपी करने में एक घंटे से अधिक समय लग सकता है। यदि संभव हो, SSH का उपयोग करें या अपडेट लोकली OpenServer पर करें — यह बहुत आसान और तेज़ है।
6. अब नई Drupal फाइलें सर्वर पर अपलोड करें, लेकिन /sites, /themes, और /modules को ओवरराइट न करें।
अगर आपका होस्टिंग SSH सपोर्ट करता है, तो आप निम्न कमांड का उपयोग कर सकते हैं:
tar -xvzf archive.tar.gz
या zip फाइल के लिए:
unzip archive.zip
अगर आपके पास SSH नहीं है, तो आप WinSCP का उपयोग कर सकते हैं, जिसमें आर्काइव एक्सट्रैक्शन के लिए बिल्ट-इन कमांड्स हैं:
https://winscp.net/eng/docs/custom_commands
या फिर 7Zip (http://www.7-zip.org/) का उपयोग करके एक नया tar.gz आर्काइव बनाएं, जिसमें केवल Drupal फाइलें हों। इस आर्काइव को सर्वर पर अपलोड करें और वहाँ WinSCP के मेन्यू से “Extract” चुनें:
7. कभी-कभी आपको settings.php
को मैन्युअली एडिट करना पड़ सकता है, लेकिन इसके संकेत आपको Status Report पेज पर मिल जाएंगे:
/admin/reports/status
8. यदि आपने .htaccess
या robots.txt
में परिवर्तन किए थे, तो उन्हें दोबारा जोड़ें।
9. यदि आपके पास अपना favicon.ico था, तो उसे भी वापस कॉपी करें।
10. एडमिन यूज़र के रूप में साइट में लॉगिन करें।
11. update.php
चलाएँ, उदाहरण के लिए:
https://drupalbook.org/update.php
12. मेंटेनेंस मोड बंद करें:
/admin/config/development/maintenance
यदि आपकी साइट व्यवसायिक रूप से महत्वपूर्ण है, तो इसे सीधे प्रोडक्शन पर अपडेट करने के बजाय लोकल OpenServer कॉपी पर पहले परीक्षण करें। यदि कोई त्रुटि आती है, तो टिप्पणी में लिखें — हम समाधान खोजने की कोशिश करेंगे।