@ Insanity5902 : एक बॉक्स से दूसरे में वर्डप्रेस साइट की तैनाती एक पीटीए रही है जिस दिन से मैंने वर्डप्रेस के साथ काम करना शुरू किया था। (ट्रुथ-टू-बताया गया था कि यह 2 साल के लिए ड्रुपल के साथ एक पीआईटीए था जो मैंने वर्डप्रेस के साथ शुरू किया था, इसलिए समस्या निश्चित रूप से विशेष रूप से वर्डप्रेस पर है।)
इसने मुझे परेशान किया कि हर बार जब मुझे एक साइट को स्थानांतरित करने की आवश्यकता होती है, तो मुझे बहुत बार दोहराया गया प्रयास खर्च करना पड़ता है और यह मुझे परीक्षण करने के लिए तैनात करने से रोकता था जितना कि मैं पसंद करता था। इसलिए लगभग 4-6 महीने पहले मैंने वेबहोस्ट माइग्रेशन समस्या को हल करने के लिए एक प्लगइन पर काम करना शुरू किया और मैंने WP टैवर्न फोरम पर अपने विचारों का उल्लेख किया ।
आज के लिए तेजी से आगे और मैं बहुत काम कर रहा है और मैं आसानी से इसे " WP माइग्रेट वेबहोस्ट्स " कह रहा हूं । हालांकि प्लगइन अभी भी बहुत बीटा है (शायद अल्फा भी) आपके प्रश्न को देखते हुए मुझे लगता है कि मैं लोगों को उस पर पीटना शुरू करने के लिए तैयार हूं।
उपयोग किए जाने का मामला यह है कि:
- पहले डेवलपर एफ़टीपी के माध्यम से सभी बदली हुई थीम और प्लगइन फ़ाइलों को अपलोड करता है,
- फिर परीक्षण सर्वर पर विकास MySQL डेटाबेस को उसकी संपूर्णता और अंत में अपलोड करता है
- फिर पूर्व डोमेन से किसी भी संदर्भ को नए पर स्थानांतरित करने के लिए प्लगइन चलाता है। (मेरे प्लगइन है नहीं नए डेटाबेस फ़ील्ड या लाइव डेटा के साथ टेबल के विलय का समाधान करने का प्रयास करते हैं कि एक बहुत बड़ा समस्या है कि मैं हल करने के लिए कैसे यकीन नहीं है।)
आप मेरी वेबसाइट से प्लगइन डाउनलोड कर सकते हैं और अपने प्लगइन्स डायरेक्टरी में अनज़िप कर सकते हैं (यदि आप नहीं जानते कि यह कैसे करना है तो यह प्लगइन आपके लिए नहीं है क्योंकि इसके लिए किसी ऐसे व्यक्ति की आवश्यकता होती है जो यह जानता हो कि वे इसका उपयोग करने के लिए क्या कर रहे हैं।) इस प्लगइन को तब तक ऑनलाइन रखें जब तक कि मैं इसे 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 इसके साथ मेरे लक्ष्य क्या हैं? मैंने इस माइग्रेशन को वर्डप्रेस कोर में देखना पसंद किया है ताकि हर किसी की पहुंच हो। लेकिन इससे पहले कि यहां तक कि बहुत से लोगों को माना जा सकता है कि इसका उपयोग करने में दिलचस्पी है यह सुनिश्चित करने के लिए कि यह वास्तव में अधिक समस्याओं को हल करता है, तो यह संभवतः बना सकता है। इसलिए यदि आप इस विचार को पसंद करते हैं, तो हर तरह से इसका उपयोग करें और मुझे वर्डप्रेस कोर में अंतिम रूप से शामिल करने के लिए इसके साथ गति प्राप्त करने में मदद करें।