2010-10-28 15 views

उत्तर

22

हाँ। drush vset site_offline 1 इसे ऑफ़लाइन सेट करेगा, फिर drush vdel site_offline इसे वापस लाएगा।

वैकल्पिक रूप से, आप drupal.org पर अपना Maintenance File module देख सकते हैं, जो आपकी साइट को ऑफ़लाइन पर सेट करेगा यदि उसे निर्देशिका में कोई विशिष्ट फ़ाइल मिलती है।

4

अगर आप एक साइट चला रहे हैं तो theunraveler का समाधान सबसे अच्छा है। हम सैकड़ों साइटों के साथ, एक बहुत बड़ी मल्टीसाइट ड्रूपल स्थापना चला रहे थे। ड्रश के माध्यम से उन्हें ऑफ़लाइन लेना प्रति साइट कई सेकंड लेता है जो अस्वीकार्य था। साइट ऑफ़लाइन लेने का सबसे तेज़ तरीका डीबी कनेक्शन तोड़ना है उदाहरण के लिए सेटिंग्स.एफ़.पी. फ़ाइल का नाम बदलना। फिर बस एक डिफ़ॉल्ट थीम असाइन करें जिसमें मूल टेम्पलेट है जिसे "साइट ऑफ़लाइन" या कुछ कहकर डीबी की आवश्यकता नहीं है। अपग्रेड करने के बाद आप सेटिंग्स.एफ़.पी. फाइल की मरम्मत कर सकते हैं और आप जाने के लिए अच्छे हैं।

+0

यह इतना लंबा लगता है। प्रत्येक साइट के लिए एक डिफ़ॉल्ट थीम सेट करने के लिए, आपको डेटाबेस परिवर्तन करना होगा। उपरोक्त ड्रश कमांड डेटाबेस में भी बदलाव कर रहा है: यह UPDATE {variables} SET value = 1 जैसा नाम = 'site_offline' जैसा ही है। इसलिए, यह मुद्दा ड्रश या यहां तक ​​कि ऑफ़लाइन साइट्स सेट करने की इस विधि के साथ नहीं है, जो स्पष्ट रूप से सबसे आदर्श है। – theunraveler

+0

@theunraveler: मुझे लगता है कि बिंदु यह है कि सेटअप करने के बाद आपको केवल एक ही बदलाव करने की आवश्यकता है। एक विधि नहीं है, हालांकि मैं खुद का उपयोग करूंगा। – googletorp

+0

@theunraveler: यह मामला नहीं है। एक मल्टीसाइट सेटअप में आप बेस इंस्टॉलेशन में एक डिफ़ॉल्ट थीम सेट कर सकते हैं ताकि यदि आप "मल्टीसाइट" साइटों में से किसी एक तक नहीं पहुंच पा रहे हैं तो यह उस बेस थीम पर डिफ़ॉल्ट हो जाता है। मेरा भरोसा करें मैंने डीबी परिवर्तन को सीधे बनाने सहित इसमें बहुत समय व्यतीत किया। यह पर्याप्त नहीं है क्योंकि कैश फ्लश नहीं होता है। जैसा कि मैंने उपर्युक्त उल्लेख किया है, मैं तब तक इसकी अनुशंसा नहीं करता जब तक कि आपके पास बहुत सी साइटें और प्रदर्शन महत्वपूर्ण नहीं है। लेकिन इस तकनीक के साथ आप कुछ सेकंड में ऑफ़लाइन 500 साइट्स ले सकते हैं, प्रति दिन 5-7 सेकेंड बनाम ड्रश – Nader

14

शायद ज़रुरत पड़े किसी ड्रुपल 7 के साथ ऐसा करने की जरूरत है, आदेशों हैं:

drush vset maintenance_mode 1 --yes # Take site offline 
drush vset maintenance_mode 0 --yes # Put site back online 

यह भी सुनिश्चित करना है कि परिवर्तन उपयोगकर्ताओं के लिए तात्कालिक प्रकट होता है उन आदेशों से प्रत्येक के बाद एक छोटे से drush cc all जोड़ने के लिए मदद करता है।

+0

यह वाक्यविन्यास वर्तमान ड्रश पर ड्रूपल 6 के साथ भी काम करता है, इसलिए शायद इसे पसंद किया जाता है। – ErichBSchulz

0
D7 पर एक साइट अन्य नाम के साथ

:

drush @site_alias -y vset maintenance_mode 1 # Take site offline 
drush @site_alias -y vset maintenance_mode 0 # Take site online 
0

यह काफी आसान है, वास्तव में, बस (डिफ़ॉल्ट मान बहाल करने के लिए 0) 1 के रखरखाव मोड के चर सेट है:

drush vset maintenance_mode 1 
0

Drupal 6

drush vset site_offline 1 

ड्रुपल 7

drush vset maintenance_mode 1