वर्डप्रेस साइट्स के लिए देव, स्टेज और प्रोडक्शन परिनियोजन?


41

इसलिए मुझे वर्डप्रेस वेबसाइट के लिए देव / मंच / उत्पादन पुनरावृत्तियों (अलग सर्वर पर) करने में सक्षम होना चाहिए, मैं आमतौर पर गिट का उपयोग करता हूं, लेकिन यह स्पष्ट रूप से वर्डप्रेस साइटों के साथ काम नहीं कर रहा है क्योंकि मुख्य के लिए डेटाबेस पर निर्भरता है। विन्यास ... ठीक है, लगभग सब कुछ।

तो मेरा सवाल है कि आप लोग इसे कैसे करते हैं? मेरे पास एक त्वरित Google था और देखा कि कुछ प्लगइन्स थे, क्या यह एकमात्र तरीका है? उपयोग, गति, विश्वसनीयता, यूआई आदि की आसानी के मामले में कौन से काम सबसे अच्छे हैं?


pantheon.io में एक ही डोमेन के लिए देव, परीक्षण और लाइव हैं। वे फ़ाइलों के लिए गिट का उपयोग करते हैं और उनके बीच डेटाबेस को एक क्लिक से स्थानांतरित करते हैं। यह आज़ाद करने के लिए स्वतंत्र है और आप केवल तभी भुगतान करते हैं जब आप 'लाइव' - youtube.com/watch?v=KpGTDeqwgX4
jagup

जवाबों:


27

मेरे पास एक सेटअप है जिस पर मुझे बहुत गर्व है, और यह मेरी टीम के लिए बहुत अच्छा काम करता है।

सामान्य संरचना

मैं पूरे इंस्टॉलेशन को गिट के नीचे रखता हूं। सभी परिवर्तन, यह एक सिस्टम अपडेट हो सकता है, एक प्लगइन जोड़ना / अपडेट करना, एक थीम जोड़ना / अपडेट करना, एक ही वर्कफ़्लो के माध्यम से जाना। एक पल की सूचना पर परिवर्तन वापस लाया जा सकता है। मेरे पास एक परिनियोजन सर्वर (एक पुराना 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 या तो डेवलपर्स हैं जो इस संरचना को एक साल से अधिक समय से काम कर रहे हैं और यह काम करने का एक सपना है। विश्वसनीय, सुरक्षित, तेज, कार्यात्मक, और चुस्त, आप और अधिक के लिए नहीं पूछ सकते हैं!


मैं एक समान तरीके से एक wp इंस्टॉलेशन करने वाला हूं (लेकिन हम svn का उपयोग करते हैं) और मैं प्लगइन्स और wp को अपडेट करने के लिए आपकी प्रक्रिया की पुष्टि करना चाहता था: अपडेट को पूरा करें और देव पर चेक करें, बदलाव करें, उन्हें स्टेजिंग पर तैनात करें, चेक करें, जीने पर उदास। सारांश में, आप वास्तव में रेपो में अपडेट के माध्यम से आपके द्वारा लाए गए लाइव सर्वर पर wp इंस्टॉलेशन अपडेट नहीं करते हैं?
पैलब

1
अद्यतन दिनचर्या द्वारा किए गए DB के परिवर्तनों के बारे में क्या। उत्पादन डीबी पर वे कैसे प्रभावित होते हैं?
3

यह वर्कफ़्लो @paullb सही है, और आपको DB अपडेट्स के बारे में चिंता करने की ज़रूरत नहीं है। जिस तरह से वर्डप्रेस काम करता है, बदलाव का पता चलने के बाद अपडेट शुरू हो जाते हैं, इसलिए यह ठीक उसी तरह से काम करता है जैसे मैनुअल अपडेट (कोर या एक प्लगइन) काम करता है!
मैथ्यू बोयन्स

@ मैथ्यू बोयनेस, हैलो। क्या आप अभी भी अपने विकास के लिए इस काम का उपयोग कर रहे हैं? यदि हां, तो मैं अपने प्रोजेक्ट के लिए इस वर्कफ़्लो को लागू करने जा रहा हूं। धन्यवाद :)
khakiout

मैं नहीं करता हूं, लेकिन केवल इसलिए कि यह उन परियोजनाओं पर लागू नहीं होता है जिन पर मैं वर्तमान में काम करता हूं, जो कि ज्यादातर WordPress.com VIP पर होस्ट किए जाते हैं। यदि यह लागू होता, तो मैं अभी भी इसका उपयोग करता (और वास्तव में, मैंने पहले जिस कंपनी के लिए काम किया था वह इसका उपयोग करना जारी रखता है)।
मैथ्यू बॉयन्स

4

सबसे पहले, मुझे लगता है कि आप संस्करण नियंत्रण में क्या जा रहे हैं, इस पर विचार करना महत्वपूर्ण है । मैं पूरे WP डायरेक्टर को VC के तहत रखने के खिलाफ सिफारिश करूंगा । मुझे लगता है कि यह वीसी के तहत wp-content / themes / YourThemeName डालने के लिए सबसे अधिक समझ में आता है। बड़ी संख्या में जटिल प्लगइन्स वाली साइट के लिए मैं wp-content / plugins को भी शामिल करने के लिए मामला देख सकता था। यदि आपके पास पूरी तरह से है, तो आप wp-content / uploads शामिल कर सकते हैं। नीचे दिए गए उत्तर थोड़े बदल जाएंगे, जो आपके संस्करण नियंत्रण पर निर्भर करता है।

यह देखते हुए कि मैं यहाँ क्या उपयोग कर रहा हूँ:

स्थानीय: अपनी मशीन पर एक LAMP स्टैक सेट करें। अपनी विकास साइट के समान URL का उपयोग करें। URL बिंदु से विकास के वातावरण का अनुकरण करने के लिए VirtualHosts और .host फ़ाइल प्रविष्टियों का उपयोग करें। यदि आप अपने विषय को सिर्फ VC'ing कर रहे हैं, तो wp-content / plugins, wp-content / uploads से लिंक करने के लिए SSHFS का उपयोग करने पर विचार करें। जब तक आप वास्तव में कुछ भारी उठाने नहीं कर रहे हैं परियोजना के अपने विकास स्थापित पर डेटाबेस का उपयोग करने पर विचार करें।

विकास: अपने रेपो वातावरण में अपने रेपो की एक कार्यशील प्रतिलिपि की जाँच करें। प्रत्येक रेपो पर इस रेपो को अपडेट करने के लिए SVN में एक POST-COMMIT हुक सेट करें। इससे यह सिंकडाउन बना रहेगा। (इसे एक गरीब आदमी के निरंतर एकीकरण पर विचार करें।)

उत्पादन: अंतिम उम्मीदवार का प्रतिनिधित्व करने वाले एक नामित संस्करण टैग की जाँच करें। जब आपको एक नए संस्करण का उपयोग करने की आवश्यकता हो, तो टैग को स्विच करें और रेपो को अपडेट करें।


एक देव वातावरण बहुत अच्छी तरह से रात के निर्माण के परीक्षण के लिए अनुकूल है, और git wordpress को हर 30 मिनट में स्वचालित रूप से अपडेट किया जाता है, टीमों के लिए विकेंद्रीकृत और बेहतर काम करने के अलावा, मैं किसी को भी नहीं जानता, जो git / hg को स्थानांतरित कर चुका है; svn का उपयोग करने के लिए।
व्यिक

1
संस्करण नियंत्रण के तहत संपूर्ण WP निर्देशिका को नहीं रखने के लिए अपने तर्क के रूप में बस उत्सुक। कि वर्कफ़्लो में एक अड़चन की तरह लगता है। रेपो में WP डालने से सभी devs को समान कोडबेस और WP वर्जन मिलता है। यह पूरे वातावरण में स्थिरता के लिए भी अनुमति देता है। सशर्त wp-config फ़ाइलों के लिए व्याक के लिंक (उनके उत्तर पर) देखें।
ब्रायन फीगर

2

हमने हाल ही में RAMP की खोज की है । नोट: यह पूरी प्रक्रिया का केवल एक हिस्सा है, लेकिन सर्वर के बीच सामग्री डेटाबेस को सिंक्रनाइज़ करना संभवतः इसका सबसे कठिन हिस्सा है।


2

मैं यह समझ और व्यवहार के साथ करता हूं, बस यह सुनिश्चित करें कि आप एक निजी रेपो का उपयोग कर रहे हैं।

विकल्प 1।

एकमात्र समस्या config.php है, जिसे आप पुश पर या init से पहले अनदेखा करने के लिए गिट बता सकते हैं।

उपयोग करें .gitignoreया git update-index --assume-unchanged config.php(उपयोग करने से पहले ग्रहण-अपरिवर्तित कमांड के बारे में थोड़ा पढ़ें)

विकल्प 2।

Config.php में एक सशर्त का उपयोग करें जो url की जाँच करता है और सही क्रेडेंशियल्स को लागू करता है, "यदि सर्वर url = dev के तर्ज पर है तो क्रेडेंशियल्स A का उपयोग करें, अन्यथा क्रेडेंशियल्स B का उपयोग करें", आदि।

मार्क इसे बेहतर बताते हैं, http://markjaquith.wordpress.com/2011/06/24/wordpress-local-dev-tips/

ps। आप पारंपरिक "फ़ाइल सर्वर" होने के बजाय दूरस्थ रेपो से फ़ाइलों को सीधे सर्वर कर सकते हैं। (वास्तव में उबाऊ वीडियो मैं इस बारे में बनाया http://www.youtube.com/watch?v=8ZEiFi4thDI )

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