एक पूर्ण सुविधा उत्तर लिखने का समय नहीं है (मुझे पता है कि लंगड़ा की तरह), लेकिन शायद वैसे भी साझा करने के लायक है (मैं इसे संपादित कर सकता हूं क्योंकि मैं इस पर एक ब्लॉग-पोस्ट की योजना बनाता हूं):
इसका मतलब है कि आपके पास कुछ ट्रंक / संस्करण-शाखा आधारित WP सेटअप हो सकता है जिसे आप पूरी तरह से हैक कर सकते हैं। विषयों और प्लगइन्स।
चूंकि यह एक स्वतंत्र (स्थानीय) भंडार है, आप इसे ssh के माध्यम से अन्य रिपॉजिटरी में धकेल सकते हैं, उदाहरण के लिए:
- वह रिमोट होस्ट पर बैठता है जहां साइट को (नंगे रेपो) पर तैनात किया जाना चाहिए।
- उस मेजबान पर एक और रिपॉजिटरी बनाने के लिए हुक हैं जो वास्तव में आपके द्वारा परिवर्तित किए गए परिवर्तनों में विलय हो जाते हैं।
यह एक वेब-केंद्रित गिट वर्कफ़्लो में उल्लिखित है (नवम्बर 2008; जो मलर द्वारा) ।
यदि आपके पास एक कॉन्फ़िगरेशन स्विचर है जो wp-config.php
उस सिस्टम के आधार पर कंक्रीट चुनता है जिस पर वह चल रहा है, तो आप रेपो के अंदर सभी मेजबानों (विकास, लाइव, स्टेजिंग, दोस्तों, ...) को केंद्रीय रूप से कॉन्फ़िगर कर सकते हैं।
WP में अपस्ट्रीम परिवर्तन आप बस प्राप्त करते हैं और उपशीर्षक में विलय करते हैं।
प्लगइन्स आप बस अद्यतन और प्रतिबद्ध है।
परिनियोजन एक सरल है $ git push remote
।
Git repos, डेटाबेस और अपलोड की गई फ़ाइलों के लिए दूरस्थ होस्ट पर दैनिक बैकअप चलाएँ और यह सस्ता, डेवलपर के अनुकूल और लचीला है। यह एकल-डेवलपर सेटअप के साथ-साथ छोटी टीमों के लिए भी अच्छा काम करता है क्योंकि हर कोई रिमोट पर नंगे रिप्रो से चेकआउट कर सकता है।
कुछ चेतावनी हैं:
अब आपकी चेकलिस्ट और सेटअप ऊपर बताए अनुसार:
1. अपने स्वयं के सर्वर पर आंतरिक रूप से मेरे जीआईटी वातावरण रखना चाहते हैं, रेपो को संभालने के लिए जीथब का उपयोग नहीं कर रहे हैं।
गितुब केवल अपस्ट्रीम रेपो को संभालता है यहाँ (Wordpress), आपका अपना नहीं।
2. गिट शाखा के निर्माण (sub.domain.com, ryan.development.domain.com) पर उप-डोमेन का स्वत: निर्माण - संभवतः कुछ शेल स्क्रिप्ट हुक इसके लिए आदर्श होगा।
उल्लिखित सेटअप प्रति साइट एक रेपो के साथ एक मॉड्यूलर दृष्टिकोण है। यह कई विकास होस्ट को संभाल सकता है जैसा कि आप चाहते हैं, यह कई डोमेन को संभालने के लिए एक मल्टी-साइट इंस्टॉल के साथ समान रूप से अच्छी तरह से काम कर सकता है, लेकिन यह इस दृष्टिकोण में एक वर्डप्रेस सेटअप के रूप में गिना जाएगा।
3. Phb PHP / Shell स्क्रिप्ट हैंडलिंग db माइग्रेशन (कुछ इस तरह से http://interconnectit.com/products/search-and-replace-for-wordpress-dat डेटाबेस/) पुश करने पर क्रमबद्ध डेटाबेस प्रतिस्थापन को संभालने के लिए
यहां इसकी आवश्यकता नहीं है क्योंकि केवल कोड संस्करण नियंत्रण में है, डेटाबेस विकास (और मंचन) और उत्पादन के बीच स्वतंत्र हैं जैसा कि यह होना चाहिए।
आप एक स्थापित स्क्रिप्ट की तलाश में हो सकते हैं जो डोमेन माइग्रेशन को सही करता है, लेकिन यहां तक कि बेहतर कोड के साथ (जो उपलब्ध है) क्रमबद्ध डेटा खोज और प्रतिस्थापित करने के साथ काम करता है, इस सेटअप में यहां यह सामान्य रूप से आवश्यक नहीं है क्योंकि आप बस बदलावों को जीने के लिए धक्का देते हैं। परीक्षण-मामलों के लिए, आप विकास डेटाबेस में सामग्री को जल्दी से बना सकते हैं, जो सामान्य रूप से सबसे छोटी समस्या है (मेरे व्यावहारिक अनुभव से, आपका अंतर हो सकता है, लेकिन मैं इस तरह के डेटाबेस-प्रवास से संबंधित विषयों को रखने के लिए सुझाव दूंगा। साइट पर यहाँ - लेकिन कृपया उनसे पूछें)।
मैं अपने स्वयं के सर्वर पर लगभग 200 साइटें चलाता हूं और इन साइटों को एक मजबूत git वर्कफ़्लो वातावरण में लागू करना शुरू करना चाहूंगा ताकि मैं अपने काम को बहुत बेहतर बना सकूं।
मैं कल्पना नहीं कर सकता कि कैसे उन साइटों को एक स्ट्रिंग गिट वर्कफ़्लो वातावरण के तहत बन जाएगा। शायद आपके द्वारा प्रबंधित कॉन्फ़िगरेशन स्क्रिप्ट और कॉन्फ़िगरेशन डेटा को git संस्करण नियंत्रण में रखा जाएगा। यह समझ में आ सकता है। अन्यथा साइटों की सरासर राशि से मुझे लगता है कि यह उन सभी को एक समान रेपो में रखने का कोई मतलब नहीं है। शायद उनमें से एक भी नहीं है क्योंकि जो मैंने ऊपर उल्लिखित किया है वह उन साइटों के लिए है जो आप विकसित करते हैं (WP कोर कोड), न केवल स्थापना कार्यों के लिए। तो आपको शायद सबसे पहले अपने आप को उन 200 साइटों के कुछ छोटे मानचित्र बनाने की आवश्यकता है और वे एक दूसरे के साथ कैसे बातचीत करते हैं और किन पैकेजों (WP कोर, प्लगइन्स, थीम्स) में उन साइटों को समाहित करते हैं। पहली बात एक स्प्रेडशीट / मैट्रिक्स बनाना और सभी साइटों को अंदर रखना हो सकता है।
फिर आप इसे CSV के रूप में सहेज सकते हैं, इसे संस्करण नियंत्रण में रख सकते हैं और तैनाती स्क्रिप्ट को उस फ़ाइल के आधार पर अपना काम कर सकते हैं।
और अगर मैंने स्वचालित कार्यों के साथ कुछ सीखा है: यूनिक्स दर्शन का पालन करें, मौजूदा और अच्छी तरह से काम करने वाले टूल का उपयोग करें (कुछ आदेशों के बारे में पढ़ने के लिए आधा दिन बिताना बेहतर है, फिर विकल्प खोजने की कोशिश करें क्योंकि ज्यादातर नौकरियों के लिए, समस्याएं रही हैं पहले से ही हल है) और कमांड-लाइन टूल पर ध्यान केंद्रित करें। वे सबसे शक्तिशाली हैं।