कॉन्फ़िगरेशन सिंक्रोनाइज़ेशन डायरेक्टरी बदलना
डिफ़ॉल्ट रूप से Drupal कॉन्फ़िगरेशन सिंक्रोनाइज़ेशन डायरेक्टरी को साइट की फाइल डायरेक्टरी में रखता है, जिसमें डायरेक्टरी नाम का हिस्सा एक हैश (hash) के रूप में उपयोग किया जाता है — जैसे कि sites/default/files/config_HASH।
HASH एक लंबी यादृच्छिक वर्णों की स्ट्रिंग होती है। यह कॉन्फ़िगरेशन तक इंटरनेट के माध्यम से पहुंच को कठिन बनाता है (हालांकि असंभव नहीं)। स्थापना के बाद सिंक्रोनाइज़ेशन डायरेक्टरी का स्थान बदला जा सकता है।
लाइव (production) साइटों पर, और यदि आपके खाते के पास इसके लिए अनुमति है, तो अनुशंसा की जाती है कि आप कॉन्फ़िगरेशन सिंक्रोनाइज़ेशन डायरेक्टरी को पूरी तरह से साइट रूट के बाहर स्थानांतरित करें। चूंकि आपकी सिंक्रोनाइज़ेशन डायरेक्टरी संस्करण नियंत्रण (version control) के तहत होनी चाहिए, इसका अर्थ है कि आपका संस्करण नियंत्रण रिपॉज़िटरी का रूट आपकी साइट के रूट से एक स्तर ऊपर होना चाहिए।
स्थानीय विकास (local development) साइटों पर, आप कॉन्फ़िगरेशन फ़ाइलों तक आसान पहुंच चाह सकते हैं और डायरेक्टरी को कुछ इस तरह स्थानांतरित कर सकते हैं: sites/default/sync।
डायरेक्टरी को स्थानांतरित करने के लिए, अपनी settings.php फ़ाइल खोलें। फ़ाइल के अंत में, Drupal स्थापना प्रक्रिया एक पंक्ति लिखती है जो साइट्स /default/files/config_HASH में सिंक्रोनाइज़ेशन डायरेक्टरी का स्थान निर्दिष्ट करती है।
सिंक्रोनाइज़ेशन डायरेक्टरी की अनुपस्थिति PHP त्रुटि लॉग में निम्न संदेश उत्पन्न कर सकती है:
Uncaught PHP Exception Exception: "The configuration directory type 'sync' does not exist"
यदि आप इस फ़ोल्डर को उदाहरण के लिए sites/default/sync में स्थानांतरित करना चाहते हैं, तो आपको $config_directories वेरिएबल को इस प्रकार अपडेट करना होगा:
$config_directories[CONFIG_SYNC_DIRECTORY] = 'sites/default/sync';
यदि आप इस फ़ोल्डर को वेब रूट (web root) के बाहर स्थानांतरित करना चाहते हैं, तो आप इस प्रकार कुछ उपयोग कर सकते हैं:
$config_directories[CONFIG_SYNC_DIRECTORY] = '../config/sync';
जहाँ config
डायरेक्टरी का पैरेंट डायरेक्टरी वही है जो आपके webroot की है, और sync
डायरेक्टरी config
डायरेक्टरी के अंदर मौजूद है।
बस इतना ही! अब, जब आप कॉन्फ़िगरेशन प्रबंधन यूज़र इंटरफ़ेस या Drush आधारित कार्यप्रवाह का उपयोग करते हैं, तो सही डायरेक्टरी का उपयोग किया जाएगा।
Drupal 8.8.0 में सिंटैक्स परिवर्तन
Drupal 8.8.0 में सिंक्रोनाइज़ेशन डायरेक्टरी को $config_directories के बजाय $settings में परिभाषित किया गया है, इसलिए settings.php फ़ाइल को अपडेट करने की आवश्यकता है।
बस इसे इस रूप से बदलें:
$config_directories['sync'] = 'foo/bar';
इसमें:
$settings['config_sync_directory'] = 'foo/bar';