कैसे करें: आसानी से विकास से उत्पादन तक वर्डप्रेस इंस्टॉल करें?


199

मैं एक बॉक्स पर विकास करता हूं और उत्पादन के लिए एक दूसरे का उपयोग करता हूं। अभी मैं सिर्फ डेटाबेस को डंप करता हूं और फिर URL परिवर्तनों के लिए एक प्रतिस्थापन ढूंढता हूं; फिर फ़ाइलों पर प्रतिलिपि बनाएँ और नए SQL आयात करें।

क्या ऐसा करने के बेहतर तरीके हैं?


2
नए लोगों के लिए दहन के लिए। 1 साल बाद और मैं अभी भी @MikeSchinkel प्लगइन का उपयोग कर रहा हूं। वह एक 0.7 है कि मैं एक जोड़े को स्थानांतरित कर दिया है समस्याओं के बिना स्थापित किया है। mikeschinkel.com/downloads/wp-migrate-webhosts-0.7.zip
रयान गिबन्स

यहां एक प्लगइन-मुक्त स्क्रिप्ट है जिसे मैंने जारी किया है जिसने मेरी प्रक्रिया को बहुत मदद की है। philipdowner.com/2012/01/…
फिलिप डाउनर


6
आज, डुप्लिकेटेटर नामक एक प्लगइन है: wordpress.org/extend/plugins/duplicator यह सचमुच एक तीन-चरणीय प्रक्रिया है और एक आकर्षण की तरह काम करता है। एक परीक्षण वातावरण से एक जीवित एक वेबसाइट को तैनात करने के लिए पहले से ही कई बार इसका इस्तेमाल किया।
मथायस

जवाबों:


122

@ Insanity5902 : एक बॉक्स से दूसरे में वर्डप्रेस साइट की तैनाती एक पीटीए रही है जिस दिन से मैंने वर्डप्रेस के साथ काम करना शुरू किया था। (ट्रुथ-टू-बताया गया था कि यह 2 साल के लिए ड्रुपल के साथ एक पीआईटीए था जो मैंने वर्डप्रेस के साथ शुरू किया था, इसलिए समस्या निश्चित रूप से विशेष रूप से वर्डप्रेस पर है।)

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

आज के लिए तेजी से आगे और मैं बहुत काम कर रहा है और मैं आसानी से इसे " WP माइग्रेट वेबहोस्ट्स " कह रहा हूं । हालांकि प्लगइन अभी भी बहुत बीटा है (शायद अल्फा भी) आपके प्रश्न को देखते हुए मुझे लगता है कि मैं लोगों को उस पर पीटना शुरू करने के लिए तैयार हूं।

उपयोग किए जाने का मामला यह है कि:

  1. पहले डेवलपर एफ़टीपी के माध्यम से सभी बदली हुई थीम और प्लगइन फ़ाइलों को अपलोड करता है,
  2. फिर परीक्षण सर्वर पर विकास MySQL डेटाबेस को उसकी संपूर्णता और अंत में अपलोड करता है
  3. फिर पूर्व डोमेन से किसी भी संदर्भ को नए पर स्थानांतरित करने के लिए प्लगइन चलाता है। (मेरे प्लगइन है नहीं नए डेटाबेस फ़ील्ड या लाइव डेटा के साथ टेबल के विलय का समाधान करने का प्रयास करते हैं कि एक बहुत बड़ा समस्या है कि मैं हल करने के लिए कैसे यकीन नहीं है।)

आप मेरी वेबसाइट से प्लगइन डाउनलोड कर सकते हैं और अपने प्लगइन्स डायरेक्टरी में अनज़िप कर सकते हैं (यदि आप नहीं जानते कि यह कैसे करना है तो यह प्लगइन आपके लिए नहीं है क्योंकि इसके लिए किसी ऐसे व्यक्ति की आवश्यकता होती है जो यह जानता हो कि वे इसका उपयोग करने के लिए क्या कर रहे हैं।) इस प्लगइन को तब तक ऑनलाइन रखें जब तक कि मैं इसे WordPress.org पर जारी नहीं कर देता, जिसके बाद आपको इसे वहां देखना चाहिए।

इसका इस्तेमाल करने के लिए आप अपने में एक अलग दृष्टिकोण लेने के wp-config.phpबाहर टिप्पणी करके कि सामान्य चार (4) को परिभाषित करता है DB_NAME, DB_USER, DB_PASSWORDऔर DB_HOSTऔर बदले दर्ज की webhosts के लिए चूक और फिर प्रत्येक webhost खुद के बारे में जानकारी दर्ज की। यहाँ पर वह खंड कैसा wp-config.phpदिख सकता है (ध्यान दें कि पहला खंड अनावश्यक कोड है जिसे टिप्पणी दी गई है और यह भी ध्यान दें कि मैंने अपने स्थानीय मशीन पर अपने होस्ट मशीन को गैर-परिवर्तनीय .devशीर्ष स्तर के डोमेन के साथ दिन-प्रतिदिन के विकास को आसान बनाने के लिए सेट किया है। मैक VirtualHostX पर यह एक हवा बनाता है):

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
//define('DB_NAME', 'wp30');

/** MySQL database username */
//define('DB_USER', 'wp30_anon');

/** MySQL database password */
//define('DB_PASSWORD', '12345');

/** MySQL hostname */
//define('DB_HOST', '127.0.0.1:3306');

require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/wp-webhosts.php');
register_webhost_defaults(array(
 'database'  => 'example_db',
 'user'      => 'example_user',
 'password'  => '12345',
 'host'      => 'localhost',
 'sitepath'  => '',        // '' if WordPress is installed in the root
));
register_webhost('dev',array(
 'name'      => 'Example Local Development',
 'host'      => '127.0.0.1:3306',
 'domain'    => 'example.dev',
 'rootdir'   => '/Users/mikeschinkel/Sites/example/trunk',
));
register_webhost('test',array(
 'name'      => 'Example Test Server',
 'rootdir'   => '/home/example/public_html/test',
 'domain'    => 'test.example.com',
));
register_webhost('stage',array(
 'name'      => 'Example Staging Server',
 'rootdir'   => '/home/example/public_html/stage',
 'domain'    => 'stage.example.com',
));
register_webhost('live',array(
 'name'      => 'Example Live Site',
 'rootdir'   => '/home/example/public_html/',
 'password'  => '%asd59kar12*fr',
 'domain'    => 'www.example.com',
));
require_once(ABSPATH . 'wp-content/plugins/wp-migrate-webhosts/set-webhost.php');

उम्मीद है कि यह (ज्यादातर) आत्म व्याख्यात्मक है। मैंने कोड को जितना हो सके उतना साफ बनाने का प्रयास किया, लेकिन दुर्भाग्य से इसके लिए require_once()वेबहोस्ट पंजीकरण कोड को ब्लॉक करने से पहले और बाद में उन दो क्रिप्टोकरंसी की आवश्यकता होती है क्योंकि मेरे लिए " हुक " करने से पहले वर्डप्रेस wp-config.phpको कॉल करने का कोई तरीका नहीं था ।

एक बार जब आप अपना अपडेट wp-config.phpकर लेते हैं, तो आप बस URL शॉर्टकट wp-migrate-webhostsका उपयोग करके व्यवस्थापक स्क्रीन पर जा सकते हैं, जैसे:

http://example.com/wp-migrate-webhosts

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

यहां छवि विवरण दर्ज करें

यदि यह इस संदर्भ में " माइग्रेशन " स्पष्ट नहीं है, तो इसका मतलब है कि वर्तमान डेटाबेस में सभी संदर्भों को अपडेट करना वर्तमान में परिभाषित वेबहोस्ट के लिए उपयुक्त है (और " वर्तमान " निरीक्षण करके सूँघा है $_SERVER['SERVER_NAME']।)

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

आपको यह भी पता चल सकता है कि मेरे माइग्रेशन उन किनारे के मामलों में विफल रहे हैं जिनका मैंने परीक्षण नहीं किया है और शायद आप मुझे प्लगइन को बेहतर बनाने में मदद कर सकते हैं? जो कोई भी मुझे अपने जीमेल खाते के माध्यम से ईमेल कर सकता है (मेरा उपनाम "mikeschinkel" है।)

इसके अलावा, प्लगइन लोगों ऐसा पहचानता के अलावा उपयोगकर्ता के परिभाषित webhost मेटाडाटा को स्वीकार करने के लिए बनाया गया था database, user, password, host, domainहो सकता है आदि एक आदर्श उदाहरण googlemaps_apikeyहै जहाँ आप प्रत्येक डोमेन है कि आपके गूगल मानचित्र के प्लगइन की जरूरत के लिए एक अलग API कुंजियां स्टोर कर सकते हैं सही संचालित करने के लिए (आपके बीच में जिसने Google मैप्स प्लगइन का उपयोग किया है उसने लाइव सर्वर पर ऐप को तैनात नहीं किया है और कोड को सही एपीआई कुंजी में बदलना भूल गया है? चलो, ईमानदार रहें ... :) इस प्लगइन के साथ? googlemaps_apikeyआपके register_webhost () सरणी और एक छोटे कस्टम migrate_webhostsहुक में एक तत्व जिसे आप प्रभावी रूप से एक चिंता के रूप में समाप्त कर सकते हैं!

खैर इसके बारे में है। मैं इस प्लगइन को वर्डप्रेस उत्तरदाता के एक्सचेंज पर यहाँ लॉन्च कर रहा हूँ क्योंकि @ Insanity5902 के प्रश्न ने इसे ट्रिगर किया। मुझे पता है कि अगर यह उपयोगी है, यहाँ अगर उचित है या नहीं तो ईमेल के माध्यम से।

PS यदि आप इसका उपयोग करने का निर्णय लेते हैं, तो याद रखें कि यह अल्फा / बीटा है और इसका मतलब है कि यह कुछ छोटी सर्जरी के लिए तैयार हो जाएगा यदि आप इसे अभी उपयोग करना चाहते हैं और फिर जारी किए गए संस्करण का उपयोग करें एक बार इसके कई हाथों से पीटा गया था।

PPS इसके साथ मेरे लक्ष्य क्या हैं? मैंने इस माइग्रेशन को वर्डप्रेस कोर में देखना पसंद किया है ताकि हर किसी की पहुंच हो। लेकिन इससे पहले कि यहां तक ​​कि बहुत से लोगों को माना जा सकता है कि इसका उपयोग करने में दिलचस्पी है यह सुनिश्चित करने के लिए कि यह वास्तव में अधिक समस्याओं को हल करता है, तो यह संभवतः बना सकता है। इसलिए यदि आप इस विचार को पसंद करते हैं, तो हर तरह से इसका उपयोग करें और मुझे वर्डप्रेस कोर में अंतिम रूप से शामिल करने के लिए इसके साथ गति प्राप्त करने में मदद करें।


अच्छा समाधान मुझे कुछ सवालों का मिला है, हालांकि 1) क्या आपको अभी भी व्यवस्थापक क्षेत्र में जाने के लिए WP_SITEURL को परिभाषित करने की आवश्यकता है? 2) क्या उपकरण केवल प्रशासक उपयोगकर्ताओं के लिए प्रदर्शित करता है? (सुनिश्चित नहीं है कि यदि टूल अनुभाग गैर-व्यवस्थापक के लिए प्रदर्शित होता है)
रयान गिबन्स

हाय @ Insanity5902: 1) WP_SITEURL सेट करने की कोई आवश्यकता नहीं है, प्लगइन आपके लिए करता है। जब आप वेबहोस्ट के लिए "डोमेन" और "साइटपाथ" रजिस्टर करते हैं तो आप वास्तव में इसे सेट कर रहे होते हैं। सामान्य वर्डप्रेस ऑपरेशन में WP_SITEURL को कोड या डेटाबेस में सेट करने की आवश्यकता होती है ताकि यह सुनिश्चित किया जा सके कि कोई भी URL को खराब न करे और $ _SERVER ['SERVER_NAME'] में अप्रत्याशित मूल्य पर नापाक बातें करता है। WP माइग्रेट वेबसाइट्स प्लगइन WP_SITEURL को अप्रत्यक्ष रूप से $ _SERVER ['SERVER_NAME'] के आधार पर सेट करता है, लेकिन यह केवल ऐसा करेगा यदि वर्तमान डोमेन आपके wp-config .php फ़ाइल में परिभाषित किए गए डोमेन में से एक से मेल खाता है, और कुछ नहीं।
माइकस्किंकेल

2.) जिस URL शॉर्टकट का मैंने वास्तव में उल्लेख किया है, वह व्यवस्थापक कंसोल में रीडायरेक्ट करता है, इसलिए यह केवल उन लोगों के लिए है जो व्यवस्थापक में लॉग इन हैं। मेरे पास केवल अभी तक निर्मित प्रशासक के लिए विशिष्ट जांच नहीं है। मैंने एक प्लगइन में क्षमताओं को कभी नहीं जोड़ा है, लेकिन अगले कुछ हफ्तों में पूरी तरह से शोध करने की आवश्यकता होगी ताकि अगले महीने में उस पर काम किया जा सके। हालाँकि प्लगइन विनाशकारी नहीं है; यह केवल वर्तमान डोमेन पर माइग्रेट कर सकता है और प्रक्रिया दोहराई जा सकती है, भले ही एक गैर-व्यवस्थापक को वहां मिला हो वास्तव में कोई नुकसान नहीं है जो वे इसके साथ कर सकते हैं, कम से कम यह नहीं कि मैं कल्पना कर सकता हूं।
माइकस्किंकेल

1
/ wp-migrate-webhosts 404 का उत्पादन करता है, और / wp-admin 'डेटाबेस कनेक्शन स्थापित करने में त्रुटि' पैदा करता है
स्टीव

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

35

जब संभव हो, मैं सेट WP_HOMEऔर WP_SITEURLमें wp-config.php। यह, एक डेटाबेस डंप और आयात के साथ संयुक्त, उन सभी समाधानों में सबसे सरल है जिनसे मैं परिचित हूं।

http://codex.wordpress.org/Changing_The_Site_URL#Edit_wp-config.php


1
इनको कब सेट करना संभव नहीं होगा? यह डेटाबेस में चीजों को बदलने की तुलना में थोड़ा सरल लगता है।
jfklein

2
@jfklein मैं लगभग हमेशा एक वर्डप्रेस नेटवर्क के साथ काम कर रहा हूं, जो इन स्थिरांक के साथ असंगत है।
अन्निका बैकस्ट्रॉम

1
वैसा ही कर रहे हैं। अफसोस, सभी विषयों को यह सम्मान नहीं है। ThemeID से Theme रिप्सनसिव थीम ’। ' लोकलहोस्ट ' (या जो भी आपने स्थानीय नाम चुना है) के लिए डंप / सभी तालिकाओं को खोजना , विशेष रूप से wp_options और खोज और प्रतिकृति बनाना अक्सर अपरिहार्य है।
फ्रैंक नोके

@FranKee मैंने एक प्लगइन बनाया है wordpress.org/plugins/pitta-m माइग्रेशन जो wp_options टेबल को अपडेट करने के लिए स्थिरांक का उपयोग करता है जिसे अधिकांश थीम और प्लगइन्स को कवर करना चाहिए
icc97

@ icc97: लवली। इस पर गौर करेंगे। पुनश्च: अच्छा हेडर छवि, स्थिति को चित्र बनाता है।
फ्रैंक नोके

27

मेरी पसंदीदा हैक; /etc/hostsअपने मशीन पर, अपने विकास बॉक्स में उत्पादन डोमेन बिंदु बनाने के लिए अपने लिए एक सेटिंग जोड़ें । उत्पादन के लिए तैनात करने के लिए आप सभी फ़ाइलों को rsync करें और डेटाबेस को आगे बढ़ाएं।

इस रणनीति के जोखिम स्पष्ट हैं; आप अपने उत्पादन वातावरण के साथ अपने विकास के माहौल को भ्रमित कर सकते हैं।

यह अभी भी एक आसान तय है।


5
हाँ! मुझे खुशी है कि मैं ऐसा सोचने वाला अकेला व्यक्ति नहीं था! देव और ठेस के बीच कोई अंतर बुरा है। उस अंतर को पूरी तरह से हटा देना उसके आसपास काम करने की कोशिश से कहीं बेहतर है। और यह सेटअप कोई काम नहीं करता है। यदि आवश्यक हो तो मॉडेड होस्ट फ़ाइल के साथ एक वर्चुअल मशीन पर परीक्षण भी किया जा सकता है।
अलेक्जेंडर बर्ड

2
मुझे यह तरीका बहुत पसंद है, लेकिन आप डेटाबेस को पुश / पुल कैसे हैंडल करते हैं?
नेनोटलेप

ठेस के साथ देव को भ्रमित करने के जोखिम के लिए, मैं एक क्रोम प्लगइन का उपयोग करता हूं जो वेबपेज का आईपी पता प्रदर्शित करता है। आपको पता चल जाएगा कि जब आप 127.0.0.1
कोसिनिक्स

9

कुछ महीने पहले जब मैंने WP में माइग्रेट किया था, तो मैं कुछ ऐसा ही चाहता था, इसलिए मैंने एक बहुत ही सरल शेल स्क्रिप्ट लिखी जो ss पर rsync और mysqldump का उपयोग करता है:

http://snarfed.org/sync_wordpress

यह परिष्कृत या वेब आधारित नहीं है, लेकिन मैं इससे खुश हूं।


8

WP इंजन एक नई सेवा है जो "वन-क्लिक स्टेजिंग" प्रदान करती है:

WPEngine में "स्टेजिंग" नामक एक विशेष सुविधा है, यहां बताया गया है कि यह कैसे काम करता है: इससे पहले कि आप अपने ब्लॉग में एक डरावना बदलाव करें, "स्नैपशॉट" बटन पर क्लिक करें। हम आपके ब्लॉग की पूरी प्रतिलिपि बनाते हैं और इसे एक अलग, सुरक्षित क्षेत्र में सेट करते हैं। आप अपनी इच्छानुसार कुछ भी खेल सकते हैं; कुछ भी नहीं है। जब आप इसे लाइव करने के लिए तैयार हों तभी आप अपनी मुख्य साइट को स्पर्श करेंगे।

विकास से उत्पादन में तेजी से आगे बढ़ने के लिए एक बहुत ही आसान तरीका दिखता है, खासकर पहले से ही लाइव साइट के साथ।


3
यह वास्तव में एक बहुत अच्छा विकल्प है और कई लोगों के लिए बहुत अच्छा होगा! बेशक यह एम्बेडेड URL के लिए काम नहीं करता है और न ही यह उन लोगों के लिए मदद करता है जो स्थानीय रूप से विकसित होते हैं ताकि वे एक डिबगर के साथ IDE का उपयोग कर सकें। अब यदि WPEngine एक ऐसी बातचीत बना सकता है जो एक स्थानीय तैनाती को भी मिला देती है, तो यह वास्तव में कुछ होगा (टेक्नोसैलेल, आप सुन रहे हैं?)
माइकस्किंकेल

सहमत, यह एक शानदार जोड़ होगा।
ट्रैविस नॉर्थकट

स्नैपशॉट फीचर केवल प्रोडक्शन से स्टेजिंग तक की कॉपी करता है , दूसरे तरीके से नहीं। यह परिवर्तनों के परीक्षण के लिए बहुत अच्छा है, लेकिन यह उत्पादन में तैनात करने में मदद नहीं करेगा।
सैम

2
@sam वास्तव में, उन्होंने अभी हाल ही में उत्पादन के लिए मंचन से कॉपी करने की क्षमता को रोल आउट करना शुरू किया। wpengine.com/2013/04/user-portal-v2-and-staging-to-production
ट्रैविस नॉर्थकट

7

अनुलिपित्र प्लगइन: यहां एक प्लगइन है जिस पर मैं काम कर रहा हूं। यह वर्तमान में बीटा में है, लेकिन इसे अधिकांश साइटों के लिए काम मिलता है। अभी यह छोटे वर्डप्रेस इंस्टॉल पर लक्षित है। http://wordpress.org/extend/plugins/duplicator/

संसाधन: प्लगइन के अतिरिक्त संसाधन यहां देखे जा सकते हैं: http://lifeinthegrid.com/duplicator/

समुदाय: कृपया हमें अपनी सफलताओं या आपके द्वारा चलाए जा रहे किसी भी मुद्दे के बारे में बताएं! विभिन्न थ्रेड को आसानी से प्रबंधित करने के प्रयास में कृपया WordPress.org plugin फ़ोरम में मुद्दों को पोस्ट करें। कृपया ऑनलाइन मंचों में प्लगइन से कोई लॉगिंग डेटा पोस्ट न करें। लॉगिंग डेटा हमारी सहायता साइट पर सबमिट किया जा सकता है।


6

आप बैकहैप्डी नामक iThemes के एक उत्पाद पर एक नज़र डाल सकते हैं । मैंने केवल इसे दो बार उपयोग किया है, हर बार एक अड़चन या दो थी, लेकिन कुल मिलाकर यह आशाजनक लग रहा है।


5

मैं व्यक्तिगत रूप से जीथब पर अपनी परियोजना के साथ इस मुद्दे को संबोधित कर रहा हूं, जिसे ऑटोप्रेस कहा जाता है । मेरे पास अभी तक एक सही समाधान नहीं है, लेकिन मैं करीब आ रहा हूं, खासकर wpengine लोगों से wpstage प्लगइन के साथ।


बस अपनी स्क्रिप्ट की जाँच करें। अच्छा लगा। अगर मुझे समझ आया कि यह सर्वर पर एक ताजा WP स्थापित करता है। यहां सवाल यह है कि विकास से उत्पादन की ओर कैसे पलायन किया जाए। क्या इससे मदद मिल सकती है?
श्री

17
यही है क्या? github.com/vluther/Autopress मैं आपके उत्तरों में लिंक बनाने का सुझाव देता हूं ताकि लोग सही क्लिक कर सकें!
आर्टलुंग

4
@ माइक ली: हां, आप टिप्पणियों को अप-वोट कर सकते हैं। देखें, मैंने आर्टलुंग की टिप्पणी को गलत ठहराया। टिप्पणी के बाईं ओर होवर करने के लिए गौरैया देखें।
माइकस्किंकल

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

1
यकीन नहीं है कि अगर यह है, लेकिन एक WP इंजन प्लगइन है जो मेजबान भर में साइट प्रवास के लिए उपयोग किया जाता है। इसे स्नैपशॉट ( डायरेक्ट लिंक ) कहा जाता है ।
जोएलहास

5

यह आशाजनक लग रहा है। हम कुछ स्क्रिप्ट्स पर काम कर रहे हैं, ताकि कुछ डेटा, उदाहरण के लिए wp- ऑप्शंस को संभालना, db में पाथ बदलना, मीडिया पर कॉपी करना।

मेरे पास मुद्दा यह है कि लाइव साइट का विकास जारी है जबकि दूसरा विकास में है। जिस साइट पर हम काम करते हैं, उसमें प्रतिदिन 20 पोस्ट और प्रति दिन 3,000 से अधिक टिप्पणियां होती हैं। यह phpmyadmin के साथ या कमांड लाइन के माध्यम से स्थानांतरित करने के लिए बहुत अधिक डेटा है। इसके अलावा, डेटा को हमेशा इधर-उधर ले जाने से किसी कारण से UTF समस्याएँ होती हैं।

इसके अलावा, अब जब ऐसा लगता है कि मेनू विकल्प डीबी में संग्रहीत हैं, तो मेरे पास इससे निपटने के लिए और भी बहुत कुछ है।

मैं एसवीएन में अपने सभी कोड की जांच करता हूं और सर्वर (बीनस्टॉक) से एफ़टीपी के माध्यम से कोड को तैनात करता हूं। हालांकि यह मेरे लिए DB में बदलाव नहीं करता है या नए प्लगइन्स को सक्रिय करता है।

मेरी योजना अभी एक मैनिफ़ेस्ट फ़ाइल बनाने की है जब मैं लाइव साइट पर अपने सभी परिवर्तन करने के लिए विकसित हो रहा हूं।

उदाहरण के लिए फ़ाइल में मानव पठनीय लाइनें होंगी

इसमें प्लग इन को सक्रिय करना, wp-options को आगे बढ़ना, स्थानांतरित करने के लिए चित्र, स्थानांतरित करने के लिए पेज शामिल होंगे। तब मेरा प्लगइन, मैनिफ़ेस्ट फ़ाइल का पता लगाएगा और स्टेजिंग साइट में सभी बदलाव करेगा।

एक बार जब मैंने परीक्षण किया और मुझे यकीन था कि मुझे सब कुछ मिल गया है, तो मुझे यकीन है कि यह उत्पादन पर काम करेगा।

यह प्लगइन अभी भी केवल एक विचार है, लेकिन मेरे पास इसके लिए कुछ कोड लिखे गए हैं।

इसके अलावा, यदि आप DB में सिर्फ URL में बदलाव करना चाहते हैं, तो आप निम्न SQL का उपयोग कर सकते हैं।

बस $old$पुराने डोमेन के $new$साथ और नए के साथ बदलें

update wp_postmeta set meta_value = replace(meta_value, '$old$' , '$new$') ;
update wp_posts set post_content = replace(post_content, '$old$' , '$new$') ;
update wp_options set option_value = replace(option_value, '$old$' , '$new$') ;

2
बस एक नोट, मेरी sql कॉल आपको क्रमबद्ध डेटा को तोड़ सकती है। s: 14: blogs.prod.com की लंबाई 14 है। कोड को चलाने के बाद, अब हमारे पास s: 14: dev.prod.com है जो भ्रष्ट है। होना चाहिए: 12: dev.prod.com सावधानी के साथ उपयोग करें।
एंड्रयू


3

मैं वर्डप्रेस फ़ाइलों (http://core.svn.wordpress.org/tags//) और साथ ही रिपॉजिटरी में सभी प्लगइन्स (http://plugins.svn.wordpress.org//tags) को स्थापित करने के लिए तोड़फोड़ के निर्यात कमांड का उपयोग करता हूं //), तो बस विषय और कस्टम प्लगइन्स ज़िप और उन्हें सामान्य रूप से स्थापित करें। एक बार जब यह सब उठ रहा है और सामग्री के बिना चल रहा है, तो मैं परीक्षण डीबी को निर्यात करता हूं और URL और फ़ाइलपथ (मीडिया के लिए संग्रहीत) के लिए एक खोज / प्रतिस्थापन करता हूं और एक खाली डेटाबेस में आयात करता हूं, फिर बस डेटाबेस जानकारी को wp-config में स्विच करें .php। आम तौर पर मुझे लगभग 10 - 20 मिनट लगते हैं।


3

आम तौर पर मैं phpMyadmin में डेटाबेस अपलोड करने और अपेक्षित डोमेन के लिए wp_options> siteurl और wp_options> घर की सामग्री को संपादित करने के लिए लॉगिन करता हूं। यदि आपको अपने पोस्ट और पेज की सामग्री के भीतर URL अपडेट करने की आवश्यकता है तो आप अपलोड करने से पहले .SQL फ़ाइल पर URL और मीडिया / अपलोड पथ के लिए खोज / प्रतिस्थापित कर सकते हैं। यह एक त्वरित काम है।


3

हालांकि यहाँ अच्छे समाधानों की कोई कमी नहीं है, लेकिन साझा करने की भावना में मैंने सोचा कि मैं अपने बैश की स्क्रिप्ट को ढेर में जोड़ दूंगा: https://github.com/jplew/SyncDB

SyncDB bash परिनियोजित स्क्रिप्ट है जो किसी Wordpress साइट के स्थानीय और दूरस्थ संस्करणों को सिंक्रनाइज़ करने के लिए टेडियम को बाहर निकालने के लिए है। यह एक स्थानीय वातावरण में काम करने वाले डेवलपर्स (जैसे। एमएमपी) को तेजी से "पुश" या "उत्पादन" करने के लिए या उनके उत्पादन सर्वर से एकल टर्मिनल कमांड के साथ परिवर्तन करने की अनुमति देता है।

यह स्क्रिप्ट मार्क जैक्विथ के WP-कंकाल, और हार्नेस के साथ अच्छी तरह से काम करती है mysqldump, gitऔर rsyncआपकी पूरी साइट - डेटाबेस, कोड, और मीडिया को दो आसान चरणों में सिंक्रनाइज़ करती है:

./syncdb
git push hub master

3

मैं http://wordpress.org/plugins/wp-clone-by-wp-academy/ का उपयोग कर रहा हूं । यह अच्छी तरह से काम करता है!

सिर्फ 3 चरण:

  1. दोनों साइटों पर प्लगइन स्थापित करें।
  2. पुरानी साइट पर बैकअप बनाने के लिए प्लगइन का उपयोग करें।
  3. बैकअप URL लें जो इसे आपको देता है और इसे नई साइट पर प्लगइन पेज में प्लग करें, हिट करें, और आपका माइग्रेशन बस कुछ ही सेकंड में पूरा हो जाएगा!

यह सभी URL को स्वचालित रूप से समायोजित करता है - जिसमें क्रमबद्ध स्ट्रिंग प्रतिस्थापन शामिल हैं - इसलिए विजेट कॉन्फ़िगरेशन खोने का कोई जोखिम नहीं है, आदि।

मेरे पास केवल कुछ मुद्दे बड़े डेटाबेस (~ 300 एमबी) के साथ कुछ वेबसाइटों के साथ हैं, जो साइट बैकअप के आयात के दौरान PHP स्क्रिप्ट निष्पादन के समय के कारण होते हैं।


3

2017 तक यहां दो सबसे अच्छे तरीके हैं जो मैंने वर्डप्रेस डेटाबेस को विकास से उत्पादन तक स्थानांतरित करने के लिए पाया है।

WP माइग्रेट DB प्रो / WP सिंक DB

https://wordpress.org/plugins/wp-migrate-db/

ये वर्डप्रेस प्लगइन्स आपको वर्डप्रेस इंस्टॉलेशन के बीच डेटाबेस तालिकाओं को धक्का, खींचने और सिंक करने देते हैं। यह कई कारणों से इसे खोजने / बदलने की तुलना में बहुत बेहतर है क्योंकि:

  • MySQL डेटा डंप के रूप में अपने डेटाबेस को निर्यात करता है (phpMyAdmin की तरह)
  • URL और फ़ाइल पथों पर खोज और प्रतिस्थापित करता है
  • क्रमबद्ध डेटा संभालता है
  • आपको इसे SQL फ़ाइल के रूप में अपने कंप्यूटर पर सहेजने की अनुमति देता है

मैं उस काम के लिए भुगतान किया जा रहा हूं, जो मैं करता हूं, इसलिए मैं आपको सलाह देता हूं कि आप मिस्टर ब्रैड टॉन्सर्ड का समर्थन करें और असली चीज की लाइसेंस कॉपी खरीदें। WP सिंक DB एक प्रतिकृति है और यह परिणाम के रूप में समर्थन में हमेशा पीछे है। इस प्लगइन के साथ प्रक्रिया मृत सरल है:

  1. अपने स्थानीयहोस्ट और उत्पादन वातावरण पर प्लगइन को स्थापित / सक्रिय करें
  2. अपने उत्पादन के लिए अपने लोकलहोस्ट / डेवलपमेंट सर्वर से एक पुश ट्रांसफर कॉन्फ़िगर करें
  3. उन नियमों को भरें जिनके लिए तालिकाओं को स्थानांतरित करना है, और प्रदर्शन करने के लिए नियमों को खोजना और बदलना है
  4. बस!

डेटाबेस खोज और बदलें WordPress डेटाबेस के लिए इंटरकनेक्ट द्वारा

https://interconnectit.com/products/search-and-replace-for-wordpress-databases/

यह मुफ्त टूल एक प्लगइन नहीं है, लेकिन आपके वर्डप्रेस उत्पादन स्थापित की रूट निर्देशिका में स्थापित है। यह WP माइग्रेट DB प्रो जितना अच्छा नहीं है क्योंकि इसमें कुछ मैनुअल चरणों की आवश्यकता होती है, लेकिन फिर भी यह एक बढ़िया विकल्प है जो लगातार काम करता है। इस दृष्टिकोण का उपयोग करते समय प्रक्रिया इस तरह दिखती है:

  1. अपने स्थानीय डेटाबेस का बैकअप लें, यह बिल्कुल आवश्यक है क्योंकि हम जल्द ही इसे फिर से आयात करेंगे
  2. अपने इंस्टॉल रूट रूट में एक फ़ोल्डर में स्क्रिप्ट जोड़ें
  3. अपने डेटाबेस पर खोज और प्रतिस्थापित करें
  4. अपने डेटाबेस को निर्यात करें और अपने उत्पादन वातावरण के लिए इसे बचाएं
  5. अपने लोकलहोस्ट को रिस्टोर करने के लिए स्टेप # 1 से अपने बैकअप को री-इम्पोर्ट करें
  6. अपने उत्पादन डेटाबेस से कनेक्ट करें और इसे वापस लें (जैसा कि आपको हमेशा इन चीजों को करने से पहले करना चाहिए)
  7. निर्यात के बाद हमने जो कदम # 4 से रूटीन को खोजने / बदलने का काम किया है, उसे आयात करें

आप तेजी से दृष्टिकोण का उपयोग कर सकते हैं, लेकिन इसमें आपकी उत्पादन साइट के लिए डाउनटाइम शामिल है जो मेरी राय में अस्वीकार्य है। इसलिए हम इसे उत्पादन कहते हैं, है ना?


1

चूंकि मैं IIS में अपनी साइटें चलाता हूं (मैं asp.net भी चलाता हूं, इसलिए मुझे विंडोज़ की आवश्यकता है) मैं एक नया उदाहरण स्थापित करने के लिए Msft से WebPI का उपयोग करता हूं, फिर मैं टेम्पलेट की प्रतिलिपि बनाता हूं और डेटा को स्थानांतरित करने के लिए आयात / निर्यात का उपयोग करता हूं।

यह सही नहीं है लेकिन पूरी चीज में एक घंटे से भी कम समय लगता है।

जाहिर है कि एक-क्लिक समाधान करना अच्छा होगा, लेकिन यह वही है जो मुझे मेरे लिए सबसे आसान लगता है।


1

एक और भुगतान समाधान: Xtreme एक थीम फ्रेमवर्क संस्करण संस्करण 1.2 को Xtreme बैकअप के साथ जारी किया गया है, जो आपको XML फ़ाइल के रूप में अपनी सभी सेटिंग्स / सामग्री के साथ अपने चाइल्डहेट्स, लेआउट या विजेट की सेटिंग्स को "निर्यात या आयात" करने की अनुमति देता है


1

एक सहकर्मी ने यह पाया। दिलचस्प अवधारणा, हालांकि यह क्रॉस सर्वर की तरह काम नहीं करता है जैसा दिखता है। मैं अभी भी इसे खोज रहा हूं, लेकिन ऐसा लगता है कि यह मंचन के लिए बहुत अच्छा काम कर सकता है

http://code.google.com/p/deploymint/


चार महीने पहले, मैं इस प्लगइन काम नहीं कर सकता ... और यह अभी भी संस्करण 0.1 में code.google
brasofilo

1

जब आप सवाल पूछते हैं तो यह आस-पास नहीं होता है, लेकिन मैं कुछ महीनों से Blogvault नामक एक सेवा का उपयोग कर रहा हूं और इसने बहुत ही दोषपूर्ण तरीके से काम किया है। मैंने संभवतः 50 से अधिक माइग्रेशन (क्रॉसिंग डोमेन, सब-डोमेन और वेब होस्ट) पार किए हैं, अड़चन नहीं है और बिल्कुल भी समय नहीं लगता है।

यह एक भुगतान सेवा (प्रति डोमेन / माह) है, लेकिन इतना नहीं।


1

RAMP , क्राउड फेवरेट का एक नया कंटेंट परिनियोजन प्लगइन है, और यह वास्तव में स्लीक दिखता है। यह $ 250 है, हालांकि, इसलिए मैंने अभी तक इसकी कोशिश नहीं की है। बस समय की राशि में खुद के लिए भुगतान कर सकते हैं, हालांकि, इसलिए मैं इस पर विचार कर रहा हूं।

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


RAMP सामग्री परिनियोजन के लिए है , जैसा कि कोड परिनियोजन के विपरीत है , लेकिन मैं मानता हूं, यह शानदार दिखता है। अब उनके पास RAMP का एक डेमो सेट है ताकि आप सुविधाओं को आज़मा सकें।
एमजो

यह प्रश्न कंटेंट डेप्लॉयमेंट के बारे में था , न कि कोड परिनियोजन के बारे में, और मैंने यह कहकर अपना जवाब देना शुरू कर दिया कि "RAMP एक नई कंटेंट परिनियोजन प्लगइन है ..."
इयान डन

1

मुझे मेरे पसंदीदा में से एक दे दो :-)

// proven local<->live codefork (covers local network testing, i.e. from mobile devices):
$GLOBALS['is_local'] =  
    in_array( $_SERVER['REMOTE_ADDR'], array("127.0.0.1","::1")) || // simple localhost (IPv4 IPv6)
              $_SERVER['HTTP_HOST'] == 'local.workblog'          || // call by local name (adjust)
       substr($_SERVER["REMOTE_ADDR"],0,8) == '192.168.';           // (mobile) device in local network

$table_prefix  = NULL; // ensure scope

if ( $GLOBALS['is_local'] )  // LOCAL fork ------------------------
{
        ....
}
else  // STAGE/LIVE fork -------------------
{

... और फिर आप वहीं से अपना काम करते हैं। DB_NAME, DB_USER ... table_prefix। व्यक्तिगत रूप से मैं स्थानीय ( कुछ कष्टप्रद चेतावनियों से बचने के लिए ) ALTERNATE_WP_CRON पर स्विच करता हूं , दोनों पर WP_DEBUG (यदि आप डेवलपर नहीं हैं) या लाइव-ओनली (यदि आप हैं), ini_set('display_errors', '0');तो लाइव के लिए दूसरा भी अच्छा कर सकता है, अंत में, जैसा कि ऊपर बताया गया है: WP_HOME और WP_SITEURL संबंधित स्थानीय / वास्तविक url में।

यह सब बहुत कुछ, क्लासिक वर्डप्रेस के ऊपर कुछ भी नहीं बचा 'यह सब है, संपादन बंद करो!' लाइन ...

192.168। भाग आपको अपने स्थानीय नेटवर्क के भीतर कुछ स्थानीय परीक्षण (यानी पैड या फोन से) करने की अनुमति देता है

$ GLOBALS ['is_local'] कुछ अतिरिक्त डिबग, आदि के लिए भी आपके थीम विकास में काम आ सकता है, ...


1
आप वर्डप्रेस कंकाल wp-config.php का उपयोग कर सकते हैं जो WP_LOCAL_DEVकुछ समान करने के लिए एक स्थिर सेट करता है
icc97

1

मैं थोड़ी देर के लिए बैकअपबड्डी प्लगइन का उपयोग कर रहा हूं। यह आपको डेटाबेस और सभी फ़ाइलों का बैकअप बनाने देता है, इसे ज़िप के रूप में डाउनलोड करता है या इसे FTP के माध्यम से सीधे दूसरे सर्वर पर भेजता है। यह आपके लिए URL ढूंढता और प्रतिस्थापित भी करता है। पूरी प्रक्रिया से गुजरने में मुझे लगभग 5 मिनट लगते हैं। और क्योंकि सभी फ़ाइलों को अपलोड किया गया है / अपलोड करने की प्रक्रिया बहुत तेज है। और नहीं, मैं उनके लिए काम नहीं करता, लेकिन इस प्लगइन ने वास्तव में इस पूरी प्रक्रिया को बहुत आसान बना दिया है।


1

साइटों के लिए सर्वर माइग्रेशन से निपटने के लिए एक और उपयोगी उपकरण वर्डप्रेस सीएलआई है, इस लेख में यह क्या किया जा सकता है का एक अच्छा अवलोकन है, लेकिन विशेष रूप से "खोज और बदलें" के लिए अनुभाग पुराने / देव साइट यूआरएल के सभी संदर्भों को खोजने के लिए उपयोगी है :

WP-CLI के साथ उन्नत वर्डप्रेस प्रबंधन


1

यह अब तक का सबसे आसान तरीका है: https://themes.artbees.net/docs/website-migration/
यह केवल दो क्लिक लेता है। एक निर्यात करने के लिए, एक आयात करने के लिए।

ऑल इन वन WP माइग्रेशन प्लगइन का उपयोग करके यह संभव है। उपरोक्त लिंक से पता चलता है कि इसका उपयोग कैसे करना है।


0

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


0

थोड़ी देर के लिए इस जवाब का पालन करने के बाद मैंने अपना खुद का छोटा प्लगइन बनाया है - पिट्टा माइग्रेशन । कारण हैं:

  1. यहाँ पर आजमाए गए सभी विचारों में से सबसे सरल WP_HOMEऔर WP_SITEURLविकल्प है
  2. इसके बाद मैं दो मेल खाने वाले wp_optionsURL को सेट करने के लिए इनका उपयोग करता हूं - जो तब कवर होते हैं जब प्लगइन्स / थीम इन पर ध्यान नहीं देते हैं
  3. इससे मुझे अपने डेटाबेस में जो भी बदला जा रहा है उसमें 100% विश्वास मिलता है
  4. यह क्रॉस-प्लेटफ़ॉर्म भी काम करता है (वे सभी बैश स्क्रिप्ट विंडोज पर अच्छी तरह से नहीं चलती हैं)
  5. यह समझना आसान है कि प्लगइन क्या कर रहा है
  6. दो स्थिरांक से परे कोई विन्यास नहीं है - एक mysqldump और अपने स्थानीय डेटाबेस में mysql आयात करें और प्लगइन देखता है कि निरंतर और तालिका भिन्न होती है और उन्हें मिलान करने के लिए अपडेट करती है
  7. कोई पाठ खोज और प्रतिस्थापित नहीं
  8. अपने डेटाबेस को ठुकराने का कोई मौका नहीं - मैं दो अपडेट और अधिक कुछ नहीं करने के लिए वर्डप्रेस डेटाबेस ऑब्जेक्ट का उपयोग करता हूं
  9. यह वर्डप्रेस कंकाल जैसी चीजों के साथ अच्छी तरह से खेलता है जहां आप स्रोत नियंत्रण में सब कुछ हो सकते हैं और स्थानीय कॉन्फ़िगरेशन सेट कर सकते हैं
  10. मैंने इसे वर्डप्रेस प्लगइन्स डायरेक्टरी में और गितूब पर डाल दिया है ताकि यह मुफ़्त हो, पूरी तरह से ओपन सोर्स, आपके लिए कांटा आसान और इंस्टॉल करना आसान हो
  11. एक बार स्थापित होने के बाद आप इसके बारे में भूल सकते हैं और इसे 'बस काम' करना चाहिए - यह आपको यह कहने के लिए थोड़ा नोटिस देता है कि डेटाबेस संशोधित किया गया है
  12. यह किसी भी बैकअप / एफ़टीपी / पुनर्स्थापना प्रक्रिया के साथ काम करना चाहिए

0

मेरे विचार में मेरे द्वारा अनुसरण किया जाने वाला सबसे आसान तरीका मैनुअल ट्रांसफर है। नए होस्ट के लिए बस wp-content फ़ोल्डर और wp-config.php फ़ाइल की प्रतिलिपि बनाएँ। पुराने होस्ट से डेटाबेस निर्यात करें और नए होस्ट के नए डेटाबेस में आयात करें।

नए होस्ट डेटाबेस में wp-ऑप्शन टेबल पर जाएं और पुराने होस्ट से नए URL एड्रेस के लिए साइट URL और ब्लॉग URL को बदल दें। जैसे http: // localhost / wp से http://example.com

अब wp-config फाइल में नए होस्ट की जानकारी के साथ डेटाबेस और यूजर की जानकारी को बदलें।

अब नए wp-admin में लॉगिन करें और सेटिंग में जाकर परमलिंक को सेव करें।

आप कर चुके हैं। मुझे लगता है कि यह किसी भी प्लगइन्स का उपयोग किए बिना सरल है।

मैंने विभिन्न प्रकार के प्लगइन्स आज़माए हैं और इन सभी में कई तरह की समस्याएं हैं।

इसलिए मैं इस सरल मैनुअल ट्रांसफर को प्राथमिकता देता हूं जो आसान है मुझे लगता है।

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