Wordpress Git वर्कफ़्लो मदद


17

मैं Wordpress के साथ काम करने के लिए एक मजबूत सुव्यवस्थित वर्कफ़्लो विचार की तलाश कर रहा हूं।

  1. अपने स्वयं के सर्वर पर आंतरिक रूप से मेरे git का वातावरण रखना चाहते हैं, न कि रेपो को संभालने के लिए Github का उपयोग कर रहे हैं।
  2. गिट शाखा निर्माण (sub.domain.com, ryan.development.domain.com) पर उप-डोमेन का स्वत: निर्माण - संभवतः कुछ शेल स्क्रिप्ट हुक इसके लिए आदर्श होगा।
  3. Phb PHP / Shell स्क्रिप्ट db माइग्रेशन को हैंडल करना (कुछ इस तरह से http://interconnectit.com/products/search-and-replace-for-wordpress-dat डेटाबेस/) पुश करने पर क्रमबद्ध डेटाबेस रिप्लेसमेंट को हैंडल करना

ऑपरेशन शायद कुछ इस तरह से होगा:

  1. वर्तमान नवीनतम वर्डप्रेस संस्करण प्राप्त करना और इसे शाखा देना, शाखा का नाम एक उपडोमेन प्रविष्टि (Branchdevelopment.domain.com) हो जाता है
  2. यदि आप इसे उपलब्ध हैं, तो थीम को उप-विषयक करें (मैं इसके लिए अपना स्वयं का गिट्टो बनाना चाहता हूं, क्योंकि मैं थीसिस का उपयोग करता हूं, मैं आंतरिक रूप से पहले से बनाए गए सर्वर पर आंतरिक रूप से हथियाने के लिए एक खाली थीसिस गैटो रेपो सेटअप करना चाहता हूं)
  3. चेकआउट करें और परिवर्तन करें, ग्राहक समीक्षा करें, एक बार इसे लाइव करने के लिए धकेल दिया जाए, तो डेटाबेस स्क्रिप्ट तब लोकलहोस्ट (या उपडोमेन) से क्रमबद्ध url मानों को लाइव url में स्वचालित रूप से बदल देगी।

क्या यह संभव है? मैंने सुना है कि Capistrano भी इसके साथ उपयोग करने के लिए अच्छा है, लेकिन यह सुनिश्चित नहीं है कि Capistrano पूरी तरह से कैसे काम करता है।

मैं अपने सर्वर पर लगभग 200 साइटें चलाता हूं और इन साइटों को एक मजबूत git वर्कफ़्लो वातावरण में लागू करना शुरू करना चाहता हूं ताकि मैं अपने काम को बेहतर तरीके से व्यवस्थित कर सकूं। अभी के रूप में, मैं मूल रूप से साइट की एक छवि डाउनलोड करता हूं और उस पर स्थानीय रूप से काम करता हूं फिर सर्वर पर वापस परिवर्तन अपलोड करता हूं। यह इस दिन और उम्र में बहुत थकाऊ है।

क्या किसी के पास इस प्रकार के वर्कफ़्लो के बारे में कोई समाधान है / अतीत में इसके साथ काम किया है? यदि हां, तो कुछ संसाधनों / उत्तर की बहुत सराहना की जाएगी।


3
बिटबकेट का उपयोग क्यों नहीं करते क्योंकि उनके पास मुफ्त में असीमित भंडार हैं?
बजे ब्रायन फीगर

2
यदि आप जीथू रेपो की जांच करते हैं, तो सर्च रिप्ले का एक क्लि संस्करण होता है, आप इसका उपयोग कर सकते हैं, हालांकि मैं इस पर टिप्पणी नहीं कर सकता कि आपको इसमें पारित करने के लिए विभिन्न URL और पैरामीटर कैसे मिले
टॉम जे नोवेल

जवाबों:


6

सामान्य प्रश्नों के उत्तर दिए

Nr.1। अपने स्वयं के सर्वर पर आंतरिक रूप से मेरे git का वातावरण रखना चाहते हैं, न कि रेपो को संभालने के लिए Github का उपयोग कर रहे हैं।

पहली बात मैं संगीतकार की जाँच करना चाहता हूँ और यह कैसे वर्डप्रेस के साथ काम करता है , जो एंड्री "@Rarst" सवचेंको द्वारा एक परियोजना है ।

Nr.2। गिट शाखा निर्माण ( development.example.com, ryan.development.example.com) पर उप-डोमेन का स्वचालित निर्माण - संभवतः कुछ शेल स्क्रिप्ट हुक इसके लिए आदर्श होगा।

यह इस साइट के लिए कुछ स्कोप है। या तो StackOverflow पर मदद के लिए पूछें या अपने होस्टर से पूछें। कुछ होस्टर्स इन प्रविष्टियों को स्वयं संपादित करने की अनुमति नहीं देते हैं।

Nr.3। Phb PHP / Shell स्क्रिप्ट db माइग्रेशन को हैंडल करना (कुछ इस तरह से http://interconnectit.com/products/search-and-replace-for-wordpress-dat डेटाबेस/) पुश करने पर क्रमबद्ध डेटाबेस रिप्लेसमेंट को हैंडल करना

मैं एक मल्टीसाइट / नेटवर्क स्थापित करूँगा। इससे सभी तालिकाओं को आसानी से प्रबंधित किया जा सकता है, उपयोगकर्ताओं को एक केंद्रीय स्थान पर रख सकते हैं, आदि।

WP गियर - रॉबर्ट "@Wyck" एलिसन द्वारा एक परियोजना - वैकल्पिक बिल्ड स्क्रिप्ट की एक सूची है। जिसमें वर्डपिंग खुद लिखा हुआ है। @TomJNowells /Interconnect.it स्क्रिप्ट अब तक उस सूची में नहीं है।

ऑपरेशन के सवालों के जवाब दिए

सं। 1. वर्तमान नवीनतम वर्डप्रेस संस्करण प्राप्त करना और इसे शाखा देना, शाखा का नाम एक उपडोमेन प्रविष्टि (ब्रांचडेवलपमेंट। Com) प्राप्त करता है

निश्चित नहीं कि कोई ऐसा क्यों करना चाहता है: प्रत्येक शाखा के लिए एक उपडोमेन। जब आप सिंक्रनाइज़ किए गए वर्डप्रेस GitHub रिपॉजिटरी और शाखाओं की सूची को देखते हैं, तो आप देखेंगे कि प्रत्येक शाखा का नाम है X.Y-branch। तो अपने उप डोमेन उदाहरण के लिए नाम मिल जाएगा 3.6-branch। मुझे यकीन नहीं है कि अगर एक उपडोमेन को एक अंक के साथ शुरू करने की अनुमति है (यह होना चाहिए, लेकिन अपने होस्टर से पूछें) और फिर समस्या यह है कि आपको एक उप-उपडोमेन मिलेगा जिसका नाम 6-branchउप-उप-उपडोमेन है 3और एक अन्य एक का नाम 2। और लगता है कि एक उपडोमेन में 2- और 3-संस्करण शाखाओं को बाँधना वह नहीं है जिसे आप प्राप्त करना चाहते हैं।

संक्षेप में: बस checkout 3.6-branchअगर आपको शाखाओं को स्विच करने की आवश्यकता है।

Nr.2। यदि आप इसे उपलब्ध हैं, तो थीम को उप-विषयक करें (मैं इसके लिए अपना स्वयं का गिट्टो बनाना चाहता हूं, क्योंकि मैं थीसिस का उपयोग करता हूं, मैं आंतरिक रूप से पहले से बनाए गए सर्वर पर आंतरिक रूप से हथियाने के लिए एक खाली थीसिस गैटो रेपो सेटअप करना चाहता हूं)

थॉमस "@toscho" स्कोल्ज़ ने एक अच्छा प्लगइन लिखा है जो हमें वर्डप्रेस निर्देशिका के बाहर विषयों को संभालने के लिए एक उपडोमेन का उपयोग करने की अनुमति देता है। आप इसे इस उत्तर के साथ-साथ इस एक में भी पा सकते हैं । WP 3.6 के बाद से भी स्वचालित अपडेट थीम के लिए काम करेगा।

आप अपनी wp-config.phpफ़ाइल में केवल स्थिरांक स्थापित करके MU- प्लगइन्स और प्लगइन्स के लिए ऐसा ही कर सकते हैं :

define( 'WP_PLUGIN_DIR',   'path/to/your/plugins.dev/folder/plugins' );
define( 'WP_PLUGIN_URL',   'https://plugins.dev/plugins' );
define( 'WPMU_PLUGIN_DIR', 'path/to/your/plugins.dev/folder/mu-plugins' );
define( 'WPMU_PLUGIN_URL', 'https://plugins.dev/mu-plugins' );

अब बस अपने सभी प्लगइन्स और थीम को संस्करण नियंत्रण में रखें और उन्हें अपने सर्वर पर धकेलें। आप आसानी से उन सभी को उपलब्ध करा सकते हैं जो म्यू-प्लग या डिफ़ॉल्ट प्लगइन्स का उपयोग करके उपलब्ध हैं जो नेटवर्क सक्रिय हो जाते हैं।

Nr.3 चेकआउट करें और परिवर्तन करें, ग्राहक समीक्षा करें, एक बार इसे लाइव करने के लिए धकेल दिया जाए, तो डेटाबेस स्क्रिप्ट फिर से लोकलहोस्ट (या उपडोमेन) से क्रमबद्ध url मानों को लाइव url में बदलने के लिए स्वचालित रूप से किक करेगी।

यदि टॉम्स स्क्रिप्ट / प्लगइन आपकी अब तक मदद नहीं करता है, तो कहा जाए कि वह गिटहब पर पुल अनुरोध स्वीकार करता है


2
2 महीने मैं इस साइट में भाग लेने में, मैं समझता हूँ कि "मैं स्थापित एक एकाधिक / नेटवर्क सेट करेंगे" अपने पसंदीदा वाक्य :) है
gmazzap

@GM हेहे :) हाँ, यह है। सामान्यतया, मुझे यह भी समझ में नहीं आता है कि हमारे पास अभी भी एकल साइटें क्यों हैं। एक नेटवर्क स्थापित करने के साथ, अपने मुख्य डोमेन / साइट वास्तव में है ठीक उसी अपने ही साइट स्थापित के रूप में। आपको इसके शीर्ष पर बहुत सारे विकल्प और संभावनाएं मिलती हैं।
कैसर

सामान्यतया मैं सहमत हूं। एकल साइट स्थापित करने के कारण हैं: 1) सीमित सर्वर एक्सेस 2) मौजूदा कोड (प्लगइन, थीम, स्निपेट्स) का बड़ा हिस्सा ठीक से काम नहीं करता है या इसमें न्यूटवर्क इंस्टॉल के मुद्दे हैं। इसलिए यदि आप अपने आप से कोड नहीं लिख सकते हैं या आपको वास्तव में नेटवर्क इंसॉल की आवश्यकता नहीं है, तो एक भी इंस्टॉल का उपयोग करना बेहतर है।
gmazzap

1
यदि टॉम्स स्क्रिप्ट काम नहीं करती है, तो पीएचपी यूजरलैंड में एक पूर्ण सुविधा सीरियलाइज्ड पार्सर उपलब्ध है जिसे सीरियलाइज्ड कहा जाता है ।
हकर्रे

@ खाक हमेशा की तरह: कृपया मेरे प्रश्न को संपादित करें :)
kaiser

3

एक पूर्ण सुविधा उत्तर लिखने का समय नहीं है (मुझे पता है कि लंगड़ा की तरह), लेकिन शायद वैसे भी साझा करने के लायक है (मैं इसे संपादित कर सकता हूं क्योंकि मैं इस पर एक ब्लॉग-पोस्ट की योजना बनाता हूं):

इसका मतलब है कि आपके पास कुछ ट्रंक / संस्करण-शाखा आधारित 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 के रूप में सहेज सकते हैं, इसे संस्करण नियंत्रण में रख सकते हैं और तैनाती स्क्रिप्ट को उस फ़ाइल के आधार पर अपना काम कर सकते हैं।

और अगर मैंने स्वचालित कार्यों के साथ कुछ सीखा है: यूनिक्स दर्शन का पालन करें, मौजूदा और अच्छी तरह से काम करने वाले टूल का उपयोग करें (कुछ आदेशों के बारे में पढ़ने के लिए आधा दिन बिताना बेहतर है, फिर विकल्प खोजने की कोशिश करें क्योंकि ज्यादातर नौकरियों के लिए, समस्याएं रही हैं पहले से ही हल है) और कमांड-लाइन टूल पर ध्यान केंद्रित करें। वे सबसे शक्तिशाली हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.