ওয়ার্ডপ্রেস সাইট মাইগ্রেশন গাইড: হোস্টিং বদলে সাইট ডাউন না করে সরানোর নিয়ম
হোস্টিং বদলাতে গিয়ে সাইট সাদা স্ক্রিন দেখাচ্ছে, নাহলে সব পেজ ৪০৪ দেখাচ্ছে? এই সমস্যাটা প্রায় সবসময় একটাই কারণে হয়: ওয়ার্ডপ্রেস সাইট মাইগ্রেশনকে শুধু ফাইল কপি-পেস্টের কাজ মনে করা হয়েছে। আসল মাইগ্রেশন এর চেয়ে অনেক বেশি কিছু, ডেটাবেজের প্রতিটা সিরিয়ালাইজড স্ট্রিং ঠিক রাখা, DNS ঠিকমতো propagate করা, আর সাইট লাইভ হওয়ার আগে সবকিছু যাচাই করা, পুরো প্রক্রিয়াটাই এর মধ্যে পড়ে।
১০+ বছর ধরে ওয়ার্ডপ্রেস সাইট বানানো এবং ৯৫০+ Fiverr ক্লায়েন্ট প্রজেক্টের অভিজ্ঞতা বলে, বেশিরভাগ মাইগ্রেশন ডিজাস্টার হয় তাড়াহুড়ার কারণে। ধাপগুলো বাদ দিয়ে শর্টকাট নেওয়া হয়, আর তারপর ক্লায়েন্টের সাইট রাতের মধ্যে ডাউন থাকে। এই গাইডে ধাপে ধাপে দেখানো হলো কীভাবে হোস্টিং বদলের সময় সাইট ডাউন না করেই মাইগ্রেট করবেন।
মাইগ্রেশনের আগে যা রেডি রাখা লাগবে
মাইগ্রেশন শুরু করার আগেই যদি এই জিনিসগুলো রেডি না থাকে, মাঝপথে গিয়ে আটকে যাবেন। প্রস্তুতির এই ধাপটা বাদ দেওয়া মানেই সমস্যা ডেকে আনা।
নতুন হোস্টিং কেনার আগেই ভুল করে বসলে পুরো মাইগ্রেশন পরিকল্পনাই ভেস্তে যায়। কোন কোন ভুলে মানুষ হোস্টিং কেনার সময় ঠকে, সেটা বিস্তারিত লেখা আছে হোস্টিং কেনার আগের ভুলগুলো নিয়ে এই গাইডে।
ফাইল আর ডেটাবেজ ট্রান্সফার করার সঠিক উপায়
ছোট সাইটের জন্য Duplicator বা All-in-One WP Migration-এর মতো প্লাগইন যথেষ্ট, কিন্তু বড় সাইটে ম্যানুয়াল পদ্ধতি বা WP-CLI বেশি নির্ভরযোগ্য। প্লাগইন মাঝেমধ্যে বড় ফাইল সাইজ বা টাইমআউট সমস্যায় আটকে যায়, সেখানে SSH দিয়ে সরাসরি কাজ করলে নিয়ন্ত্রণ পুরোটা হাতে থাকে।
পুরো wp-content ফোল্ডার (themes, plugins, uploads সহ) rsync বা SFTP দিয়ে কপি করতে হবে। ডেটাবেজের জন্য mysqldump দিয়ে এক্সপোর্ট করে নতুন সার্ভারে ইমপোর্ট করতে হয়। এরপর wp-config.php ফাইলে নতুন ডেটাবেজ নেম, ইউজার, পাসওয়ার্ড আপডেট করা বাধ্যতামূলক, এটা মিস করলে সাইট সাদা স্ক্রিন দেখাবে। ডেটাবেজ অপ্টিমাইজেশনের খুঁটিনাটি নিয়ে আলাদা একটা গাইড আছে এখানে, মাইগ্রেশনের আগে ডেটাবেজ পরিষ্কার রাখলে ট্রান্সফারও দ্রুত হয়।
প্লাগইন নাকি ম্যানুয়াল: কোন পদ্ধতি কার জন্য
সাইটের সাইজ আর টেকনিক্যাল কমফোর্ট লেভেল অনুযায়ী পদ্ধতি বেছে নিতে হয়, একটাই সঠিক উত্তর নেই। পোর্টফোলিও সাইট বা ব্লগের মতো ছোট সাইটে প্লাগইন-ভিত্তিক মাইগ্রেশন সবচেয়ে দ্রুত, ঝামেলাহীন সমাধান। কিন্তু ইকমার্স সাইট, মেম্বারশিপ সাইট বা কয়েক জিবি ডেটাবেজের সাইটে প্লাগইন প্রায়ই টাইমআউট বা মেমোরি লিমিটে আটকে যায়।
এই ধরনের বড় সাইটে SSH অ্যাক্সেস থাকলে সরাসরি WP-CLI ব্যবহার করাই বুদ্ধিমানের কাজ। এতে প্রতিটা ধাপের উপর নিয়ন্ত্রণ থাকে, আর মাঝপথে কোথায় সমস্যা হচ্ছে সেটাও সহজে ধরা যায়। যাদের SSH নিয়ে স্বচ্ছন্দ না, তাদের জন্য হোস্টিং প্রোভাইডারের নিজস্ব মাইগ্রেশন টুল বা ম্যানেজড মাইগ্রেশন সার্ভিস নেওয়াই ভালো, ভুল করে ডেটাবেজ করাপ্ট করার চেয়ে সেটা অনেক নিরাপদ।
wp-cli search-replace দিয়ে URL ঠিক করা
phpMyAdmin দিয়ে সরাসরি Find & Replace চালানো সবচেয়ে বিপজ্জনক ভুলগুলোর একটা। phpMyAdmin-এ চালানো MySQL কমান্ড সিরিয়ালাইজড PHP ডেটা বোঝে না। ফলে থিমের সেটিংস, উইজেট, প্লাগইনের অপশন কোনো এরর ছাড়াই ভেঙে যায়, কারণ সিরিয়ালাইজড স্ট্রিংয়ের length prefix আর মিলে না।
এর বদলে wp search-replace কমান্ড ব্যবহার করা উচিত। এটা প্রতিটা কলাম unserialize করে, স্ট্রিং রিপ্লেস করে, তারপর সঠিক length prefix দিয়ে আবার serialize করে। সবচেয়ে গুরুত্বপূর্ণ অংশ হলো --precise ফ্ল্যাগ, এটা ছাড়া চালালে সিরিয়ালাইজড ডেটা নিঃশব্দে করাপ্ট হতে পারে, কোনো এরর মেসেজ ছাড়াই।
wp search-replace 'https://olddomain.com' 'https://newdomain.com' --all-tables --precise --dry-run
প্রথমে --dry-run দিয়ে চালিয়ে কতগুলো রিপ্লেসমেন্ট হবে সেটা দেখে নিতে হবে। সংখ্যাটা ঠিক মনে হলে --dry-run বাদ দিয়ে আসল কমান্ড চালাতে হয়।
DNS প্রোপাগেশন আর ডাউনটাইম কমানোর কৌশল
DNS পরিবর্তনের পর সাইট লাইভ দেখানো বন্ধ করে দিলে ঘণ্টার পর ঘণ্টা সাইট অ্যাক্সেস করা যায় না। এটা এড়ানোর সহজ উপায় হলো, DNS আপডেট করার আগেই নতুন সার্ভারে সাইটটা কেমন দেখাচ্ছে সেটা লোকাল হোস্টস (hosts) ফাইলে টেম্পোরারি এন্ট্রি বসিয়ে যাচাই করে নেওয়া। এতে ব্রাউজারে নতুন সার্ভারের কনটেন্ট দেখা যায়, অথচ পাবলিকলি এখনও পুরনো সার্ভার লাইভ থাকে।
সবকিছু ঠিকঠাক মনে হলে DNS আপডেট করে দিতে হয়। TTL আগে থেকে কম রাখা থাকলে propagation কয়েক ঘণ্টার মধ্যেই শেষ হয়ে যায়, নাহলে ২৪-৪৮ ঘণ্টাও লাগতে পারে। পুরনো হোস্টিং অন্তত এক সপ্তাহ একটিভ রাখা উচিত, যাতে propagation শেষ না হওয়া পর্যন্ত সাইট বা ইমেইল বন্ধ না হয়।
মাইগ্রেশনের পর যা যা টেস্ট করবেন
মাইগ্রেশন শেষ মানেই কাজ শেষ না। লাইভ করার আগে এই চেকগুলো একে একে করে নিতে হবে।
- হোমপেজ আর অ্যাডমিন প্যানেল ঠিকমতো লোড হচ্ছে কিনা দেখা
- ইনার পেজ আর পারমালিংক চেক করে ৪০৪ এরর আছে কিনা যাচাই করা
- কন্টাক্ট ফর্ম সাবমিট করে ইমেইল ডেলিভারি ঠিকমতো কাজ করছে কিনা টেস্ট করা
- SSL সার্টিফিকেট অ্যাক্টিভ আছে কিনা আর মিক্সড কনটেন্ট ওয়ার্নিং আসছে কিনা দেখা
- wp-cron ঠিকমতো ট্রিগার হচ্ছে কিনা, শিডিউল করা পোস্ট বা ব্যাকআপ কাজ করছে কিনা যাচাই করা
যেসব ভুলে মাইগ্রেশনের পর সাইট ভাঙে
একই ভুলগুলো বারবার সাইট ভাঙার কারণ হয়। এগুলো আগে থেকে জানা থাকলে অনেক মাথাব্যথা বাঁচে।
শেষ কথা
ওয়ার্ডপ্রেস সাইট মাইগ্রেশন কোনো এক-ক্লিক কাজ না, এটা একটা প্রসেস। ব্যাকআপ, সঠিক টুল দিয়ে URL রিপ্লেস, DNS ম্যানেজমেন্ট, আর লাইভ করার আগে যাচাই, এই চারটা ধাপ মিস না করলে সাইট ডাউন হওয়ার সম্ভাবনা প্রায় শূন্যে নেমে আসে। নিজে হাতে-কলমে cPanel সম্পর্কে বিস্তারিত শিখে নিতে চাইলে cPanel Mastery কোর্সটা দেখে নিতে পারেন, আর নিজে না করে বিশ্বস্ত হাতে ছেড়ে দিতে চাইলে ডোমেইন ও ওয়েব হোস্টিং সার্ভিস থেকে সরাসরি সাহায্য নেওয়া যায়।