विकास, परीक्षण और विमोचन


10

आप अपने Wordpress साइटों को कैसे विकसित, परीक्षण और तैनात करते हैं?

इसका हमेशा थोड़ा सा मुझे लगता है, खासकर जहां डेटाबेस चिंतित हैं - मुख्य रूप से इस तथ्य के कारण कि परीक्षण स्थल होने के लिए एक पूरे नए डेटाबेस की आवश्यकता होती है, जो कभी-कभी बिल्कुल समान हो सकता है, सिवाय इसके कि सभी लिंक बदल दिए जाते हैं लाइव साइट के बजाय परीक्षण साइट url।

इसी तरह कोई भी अपलोड जो उपयोगकर्ताओं ने आखिरी बार तब से अपलोड किया है जब आपको बग को ठीक करने या कुछ नया विकसित करने की आवश्यकता होती है, को परीक्षण स्थल पर कॉपी करना होगा।

दूसरे कैसे करते हैं? क्या आप सिर्फ फाफ के साथ डालते हैं? क्या आप चतुर संस्करण नियंत्रण प्रणालियों का उपयोग करते हैं जो मदद करते हैं?

धन्यवाद


यदि आप अपनी मेजबानों की फाइल में फेरबदल करने के लिए एक प्रणाली बनाते हैं , तो आपको कभी भी अपने परीक्षण DB के साथ नहीं उलझना पड़ेगा। ( wordpress.stackexchange.com/a/10943/9142 )
अलेक्जेंडर बर्ड

जवाबों:


12

व्यक्तिगत दर्शन का एक सा है जो परिनियोजन वर्कफ़्लो में जाता है। सर्वर और संस्करण नियंत्रण, अपने ऑपरेटिंग सिस्टम, होस्टिंग, क्लाइंट के अनुभव और तकनीक संस्कृति, आदि के साथ अपने अनुभव को जानने के बिना एकमुश्त जवाब देना आसान सवाल नहीं है ...

  1. यहाँ एक ऐसा ही प्रश्न है जिसका बहुत स्पष्टीकरण है।
  2. सामग्री परिनियोजन के लिए, आप क्राउड फेवरेट के रैमपी प्लगइन की जांच कर सकते हैं ।
  3. WP हैकर्स तैनाती के बारे में अच्छी जानकारी प्राप्त करने के लिए एक महान धागा है।

व्यक्तिगत रूप से, मैं यह सुनिश्चित करता हूं कि मैं अपने विषयों में कभी भी पूर्ण URL कोड को हार्ड न करूं। ब्लजिनो () या कोड सापेक्ष URL का उपयोग करें। मैं अपने wp-config.php फ़ाइल में बहुत सारे सशर्त का उपयोग करता हूं। यहाँ मेरे wp-config संपादन का एक वैनिला संस्करण है।

switch($_SERVER['SERVER_NAME']){
    case 'dev.yourdomain.com':
        $db_host = '';
        $db_pass = '';
        //define debugging
        break;
    case 'stage.yourdomain.com':
        $db_host = '';
        $db_pass = '';
        break;
    default: //Live
        $db_host = '';
        $db_pass = '';
}
define('DB_PASSWORD', $db_pass);
define('DB_HOST', $db_host);

//You could also set this as a variable above
define('WP_HOME', 'http://'.$_SERVER['SERVER_NAME']));
define('WP_SITEURL', 'http://'.$_SERVER['SERVER_NAME']));

मैं बहुत सी साइट्स पर काम करता हूं, जिन्हें फॉलो करते हैं

  • स्थानीय (व्यक्तिगत हैकिंग :) मेरे लैपटॉप वेब सर्वर पर)>
  • देव (ग्राहक सर्वर पर परीक्षण)>
  • मंच (क्यूए के लिए स्थिर स्रोत - सामग्री संपादन)>
  • उत्पादन (लाइव साइट)

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

हमारे पास शायद ही कभी एक पर्यावरण से दूसरे पर्यावरण की ओर पलायन के मुद्दे हों। हम एम्बेडेड मीडिया, आदि के अनुसार URL को बदलने के लिए DB में एक खोज / प्रतिस्थापित करते हैं ...


यह बहुत उपयोगी है! :) आपका बहुत बहुत धन्यवाद। तो हर बार जब आप अलग-अलग सर्वरों पर तैनात होते हैं, तो क्या आप डेटाबेस को लाइव साइट से डुप्लिकेट करते हैं? आप कहते हैं कि आप QA और सामग्री संपादन के लिए एक स्टेजिंग सर्वर (stage.domain.com) पर तैनात हैं। यदि आप लाइव साइट पर स्टेज सर्वर चला रहे हैं, तो डेटाबेस में परिवर्तन होने पर क्या होता है? यानी आप या आपका क्लाइंट स्टेज में लॉग इन करते हैं और कुछ सामग्री को अपडेट करते हैं, लेकिन साथ ही साथ एक योगदानकर्ता लाइव साइट पर एक नया लेख पोस्ट करता है? क्या आप सामग्री को लाइव साइट पर फिर से संपादित करते हैं? आप डेटाबेस संरचना परिवर्तन से कैसे निपटते हैं?
थॉमस क्लेसन

सभी प्रश्नों के बारे में क्षमा करें! : p मैं आपके समय और मदद के लिए बहुत आभारी हूं।
थॉमस क्लेसन

एक नए फीचर सेट पर, आप प्रोडक्ट> स्टेज से खींच सकते हैं। तब नई सुविधा के लिए सामग्री जोड़ें, बैक स्टेज> उत्पादों को धक्का दें। वहाँ से, मंच ठेस की एक उच्च निष्ठा प्रतिलिपि है और आप मंच> देव खींच सकते हैं। यह अक्सर हम DB को मंच से वापस नहीं खींचते हैं। जब तक कोई सुविधा db आर्किटेक्चर को परिवर्तित नहीं करती तब तक DB के साथ अधिकांश एक्सचेंज स्टेज से लेकर ठेस तक होते हैं।
ब्रायन फीगर

यदि आप सामग्री परिनियोजन के लिए चरण का उपयोग करना चाहते हैं और कभी भी ठेस नहीं पहुँचाते हैं, तो आप मेरे द्वारा पहले पोस्ट किए गए RAMP प्लगइन की जांच कर सकते हैं।
ब्रायन फीगर

+1 सब कुछ ऊपर, प्रोविजो के साथ कि कुछ परेशान करने वाले प्लग-इन धारावाहिक सरणियों में यूआरएल संग्रहीत करने पर जोर देते हैं, जो चीजों को एक env के DB से दूसरे तक ले जाने में गड़बड़ कर सकते हैं। मुद्दा यह है कि क्रमबद्ध सरणियाँ स्ट्रिंग की लंबाई को स्टोर करती हैं, और लंबाई में परिवर्तन होने पर बोर्कन होती हैं। इस प्रकार, मैं सलाह दूंगा कि अगर संभव हो तो ईवी के डोमेन नाम को उसी तरह रखें, जैसे कि dev.example.com, tst.example.com, www.example.com आदि
वेबवेयर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.