मेरे पास एक सेटअप है जिस पर मुझे बहुत गर्व है, और यह मेरी टीम के लिए बहुत अच्छा काम करता है।
सामान्य संरचना
मैं पूरे इंस्टॉलेशन को गिट के नीचे रखता हूं। सभी परिवर्तन, यह एक सिस्टम अपडेट हो सकता है, एक प्लगइन जोड़ना / अपडेट करना, एक थीम जोड़ना / अपडेट करना, एक ही वर्कफ़्लो के माध्यम से जाना। एक पल की सूचना पर परिवर्तन वापस लाया जा सकता है। मेरे पास एक परिनियोजन सर्वर (एक पुराना P4 डेस्कटॉप) है जो गिटोसिस को चला रहा है लेकिन आप आसानी से गिटब या गिटोलिट का उपयोग कर सकते हैं । गिट में, मेरी दो "विशेष" शाखाएं हैं, master
और develop
(नीचे और अधिक समझाया गया है)। मेरा उत्पादन और मंचन सर्वर क्लाउड-आधारित हैं।
विकास का वातावरण
प्रत्येक डेवलपर अपने स्वयं के मशीन पर अपना स्वयं का विकास सर्वर चलाता है। डेटाबेस के संदर्भ में, लाइव डेटा की आवश्यकता शायद ही कभी एक मुद्दा रही हो। हम मुख्य रूप से थीम यूनिट टेस्ट डेटा का उपयोग करते हैं । अन्यथा निर्यात और आयात ज्यादातर चीजों को कवर करता है। यदि DB टुकड़ा महत्वपूर्ण था, तो आप प्रतिकृति की स्थापना कर सकते हैं या ऑन-डिमांड सिंकिंग के लिए कुछ सेटअप कर सकते हैं। जब मैंने शुरुआत में इस संरचना को स्थापित किया, तो मुझे लगा कि यह महत्वपूर्ण होगा इसलिए मैंने ऐसा करने के लिए उपकरणों का एक सेट लिखना शुरू किया , लेकिन मेरे आश्चर्य के लिए वे वास्तव में आवश्यक नहीं थे। (ध्यान दें: चूंकि वे आवश्यक नहीं थे, इसलिए मैंने उन्हें कभी पॉलिश नहीं किया, इसलिए कीड़े हैं जैसे कि यह क्रमबद्ध डेटा में डोमेन को बदल देगा)।
मंचन पर्यावरण
जब कमिट्स को develop
शाखा से गिटोसिस में धकेल दिया जाता है , तो वे स्वचालित रूप से हमारे स्टेजिंग सर्वर पर तैनात हो जाते हैं। स्टेजिंग डेटाबेस उत्पादन डेटाबेस का दास है।
उत्पादन वातावरण
जब कमिट को master
शाखा पर गिटोसिस के लिए धकेल दिया जाता है , तो यह स्वचालित रूप से उत्पादन सर्वर पर तैनात हो जाता है।
Wp-config.php समस्या
आप wp-config.php
सर्वर से सर्वर तक अद्वितीय होना चाहते हैं , लेकिन आप इसे संस्करण नियंत्रण में भी रखना चाहते हैं। मेरा समाधान मंचन और उत्पादन संस्करणों को अलग-अलग नाम वाली फ़ाइलों के रूप में .gitignore
अनदेखा करने wp-config.php
और संग्रहीत करने के लिए उपयोग करना था । फिर प्रत्येक सर्वर पर, मैं सिमिलिंक उदाहरण के लिए wp-config.php -> wp-config-production.php
। प्रत्येक उपयोगकर्ता तब अपनी स्वयं की डीबी को अपनी साख के साथ रखता है, अपनी स्वयं की (अनट्रैकड) wp-config.php सेटिंग्स के साथ।
अन्य नोट
मैं रैकस्पेस क्लाउड का उपयोग करता हूं , जो अभूतपूर्व और सस्ती है। इसके साथ मैं अपने मंचन और उत्पादन सर्वर को समान रख सकता हूं। मैं अभी प्लगइन्स भी लिख रहा हूं जो वर्डप्रेस के भीतर से अपनी सेवाओं को नियंत्रित करने की अनुमति देने के लिए उनके एपीआई का उपयोग करता है, यह अद्भुत है।
कैश निर्देशिका, फ़ाइल अपलोड निर्देशिका इत्यादि सभी को .ignignore में जोड़ा जाता है। यदि आप चाहते हैं, तो आप अपलोड में नियमित रूप से जांच करने और उन्हें गिटोसिस की ओर धकेलने के लिए एक क्रोन कार्य सेटअप कर सकते हैं, लेकिन यह मेरे लिए कभी आवश्यक नहीं लगा।
मास्टर / विकसित संरचना आंशिक रूप से विन्सेन्ट Driessen की शाखा मॉडल की नकल करने के लिए सेट है । मैं उनके git एक्सटेंशन git-flow का भी उपयोग करता हूं और मैं यह भी सुझाव देना चाहता हूं।
मेरे पास 10 या तो डेवलपर्स हैं जो इस संरचना को एक साल से अधिक समय से काम कर रहे हैं और यह काम करने का एक सपना है। विश्वसनीय, सुरक्षित, तेज, कार्यात्मक, और चुस्त, आप और अधिक के लिए नहीं पूछ सकते हैं!