কিভাবে বড় WordPress সাইট মাইগ্রেট করবেন

এই প্রবন্ধে, একটি বড় WordPress সাইটের স্থানান্তর প্রক্রিয়াটি ব্যাখ্যা করবো, যেখানে ডাটাবেস (ধরে নেয়া যাক – ৪০ জিবি আকার) এবং wp-content ডিরেক্টরি (ধরে নেয়া যাক -১০০ জিবি আকার) অন্তর্ভুক্ত থাকবে। ধরে নিচ্ছি যে আপনার পুরানো এবং নতুন উভয় সার্ভারে শেল অ্যাক্সেস রয়েছে এবং স্থানান্তরের জন্য mydumper এবং rsync টুল ব্যবহার করা হবে। এখানে উল্লেখিত ধাপগুলো বড় ডেটার ক্ষেত্রে মাইগ্রেশনকে কার্যকরীভাবে সম্পন্ন করতে সহায়ক হবে।

পূর্বশর্তসমূহ:

  • শেল অ্যাক্সেস পুরানো এবং নতুন উভয় সার্ভারে।
  • নিশ্চিত করুন যে mydumper এবং rsync উভয় সার্ভারে ইনস্টল করা আছে।
  • PHP, SQL, এবং Bash সম্পর্কে মৌলিক জ্ঞান।

মূল বিবরণ:

  • পুরানো ডোমেইন: www.old-site.com
  • নতুন ডোমেইন: www.new-site.com
  • পুরানো ডাটাবেসের নাম: olddb
  • নতুন ডাটাবেসের নাম: newdb

ধাপ ১: টুলস ইনস্টলেশন যাচাই

প্রথমে, উভয় সার্ভারে mydumper এবং rsync ইনস্টল আছে কিনা তা যাচাই করুন। যদি ইনস্টল না থাকে, তাহলে নিম্নোক্ত কমান্ডগুলো ব্যবহার করে ইনস্টল করুন:

MyDumper এবং Rsync যাচাই:

# mydumper ইনস্টল করা আছে কিনা যাচাই করুন
mydumper --version

# rsync ইনস্টল করা আছে কিনা যাচাই করুন
rsync --version

MyDumper ইনস্টল করুন:

# উবুন্টু ভিত্তিক সিস্টেমে
sudo apt-get install mydumper

# CentOS ভিত্তিক সিস্টেমে
sudo yum install mydumper

Rsync ইনস্টল করুন:

# উবুন্টু ভিত্তিক সিস্টেমে
sudo apt-get install rsync

# CentOS ভিত্তিক সিস্টেমে
sudo yum install rsync

ধাপ ২: ডাটাবেস ছোট ছোট কম্প্রেসড অংশে এক্সপোর্ট করা

www.old-site.com থেকে ডাটাবেসটি ছোট কম্প্রেসড অংশে এক্সপোর্ট করতে mydumper ব্যবহার করুন। mydumper বিশেষভাবে কার্যকরী কারণ এটি প্যারালাল এক্সপোর্ট এবং কম্প্রেশন করতে সক্ষম।

এক্সপোর্ট কমান্ড:

# পুরানো সাইটে
mydumper --database=olddb --outputdir=/path/to/export --compress --threads=4 --chunk-filesize=100
  • --threads=4: প্যারালাল এক্সপোর্টের জন্য থ্রেড সংখ্যা।
  • --chunk-filesize=100: প্রতিটি অংশ প্রায় ১০০ মেগাবাইট আকারের হবে।
  • --compress: এক্সপোর্টের সময় প্রতিটি অংশ কম্প্রেস করবে।

ধাপ ৩: এক্সপোর্ট করা ডাটাবেস নতুন সার্ভারে স্থানান্তর করা

এক্সপোর্ট সম্পন্ন হওয়ার পর, rsync ব্যবহার করে ডাটাবেস অংশগুলোকে www.old-site.com থেকে www.new-site.com এ স্থানান্তর করুন।

Rsync কমান্ড:

# পুরানো সাইটে

rsync -avzP --partial --append /path/to/export/ user@new-site.com:/path/to/new/location

  • -a: আর্কাইভ মোড, সব অ্যাট্রিবিউট সংরক্ষণ করে।
  • -v: ভার্বোজ মোড, বিস্তারিত তথ্য দেখায়।
  • -z: ডেটা কমপ্রেস করে।
  • -P: প্রগ্রেস দেখায় এবং আংশিক ফাইল সংরক্ষণ করে, pause and resume এর জন্য প্রয়োজনীয়|
  • –partial: আংশিক ফাইল সংরক্ষণ করে,pause and resume এর জন্য প্রয়োজনীয়
  • –append: এই অপশনটি rsync-কে বলে যে, গন্তব্যে ইতিমধ্যে বিদ্যমান ফাইলগুলিতে ডেটা যোগ করতে, সেগুলি ওভাররাইট না করে, pause and resume এর জন্য প্রয়োজনীয়
  • /path/to/export/: সোর্স ডিরেক্টরি।
  • user@new-site.com:/path/to/new/location: ডেস্টিনেশন।

ধাপ ৪: নতুন সার্ভারে ডাটাবেস ইম্পোর্ট করা

www.new-site.commyloader কমান্ড ব্যবহার করে ডাটাবেস অংশগুলো নতুন ডাটাবেসে (newdb) ইম্পোর্ট করুন।

ইম্পোর্ট কমান্ড:

# নতুন সাইটে
myloader --directory=/path/to/new/location --database=newdb --threads=4 --overwrite-tables --compress
  • --overwrite-tables: কোনো টেবিল আগে থেকে থাকলে তাকে ওভাররাইট করবে।
  • --compress: কম্প্রেস করা ফাইল স্বয়ংক্রিয়ভাবে ডিকম্প্রেস করবে।

ধাপ ৫: আপলোড ডিরেক্টরি ছোট ছোট অংশে স্থানান্তর করা

প্রতিটি অংশ rsync ব্যবহার করে স্থানান্তর করুন:

#এখানে জানিয়ে রাখা উচিৎ, rsync বড় ডেটা বা ফাইল ছোট-ছোট ভাগে ভাগ  করে স্থানান্তর করতে পারে এবং নেটওয়ার্ক ত্রুটির কারণে স্থানান্তর ব্যাহত হলে পুনরায় শুরু করতে পারে

#rsync command-টি ঠিকঠাক কাজ করে কী-না পরীক্ষা করুন ।
rsync -avz --dry-run /path/to/wp-content/ user@new-site.com:/path/to/new-site/

# পরীক্ষা সফল হলে ডাঁটা পুরনো ডোমেইন থেকে নতুন ডোমেইন এ স্থানান্তরের নির্দেশ দিন ।
rsync -avzP  --partial --append /path/to/wp-content/ user@new-site.com:/path/to/new-site/

ধাপ ৭: WordPress ডাটাবেসে URL এবং GUID আপডেট করা

ফাইল এবং ডাটাবেস স্থানান্তরের পরে, নতুন ডাটাবেসে পুরানো ডোমেইন রেফারেন্সগুলি আপডেট করুন। এটি www.old-site.com কে www.new-site.com দিয়ে প্রতিস্থাপন করতে হবে।

ডোমেইন পরিবর্তনের জন্য SQL প্রক্রিয়া:

নিচের স্টোরড প্রক্রিয়াটি ব্যবহার করে ডাটাবেসের posts, options, এবং postmeta টেবিলের ডোমেইন আপডেট করুন।

# নিচের স্টোরড প্রোসিডিউরটি আপনাকে পুরানো ডোমেইন নামটি নতুন ডোমেইন নামে পরিবর্তন করতে সাহায্য করবে (এই স্টোরড প্রোসিডিউরটি MySQL v.5.6+ এবং MariaDB v.10.6+ এর উপর পরীক্ষা করা হয়েছে)।

# এই প্রোসিডিউরটি WordPress database জন্য এবং এটি নতুন ডোমেইন নাম, পুরানো ডোমেইন নাম এবং ডাটাবেস টেবিল প্রিফিক্স গ্রহণ করে এবং wp_posts, wp_options টেবিলগুলতে পুরনো ডোমেইন খুঁজে সেগুল নতুন ডোমেইন - এ পরিবরতন করে।

DROP PROCEDURE IF EXISTS wp_change_domain;

DELIMITER $$

CREATE PROCEDURE wp_change_domain(
    IN new_domain VARCHAR(255),
    IN old_domain VARCHAR(255),
    IN prefix VARCHAR(255)
)
BEGIN
    DECLARE wp_posts VARCHAR(255);
    DECLARE wp_options VARCHAR(255);
    DECLARE wp_postmeta VARCHAR(255);

    SET wp_posts = CONCAT(prefix, 'posts');
    SET wp_options = CONCAT(prefix, 'options');
    SET wp_postmeta = CONCAT(prefix, 'postmeta');

    SET @stmt1 = CONCAT('UPDATE ', wp_options, ' SET option_value = REPLACE(option_value, \'', old_domain, '\', \'', new_domain, '\') WHERE option_name IN (\'home\', \'siteurl\');');
    SET @stmt2 = CONCAT('UPDATE ', wp_posts, ' SET guid = REPLACE(guid, \'', old_domain, '\', \'', new_domain, '\');');
    SET @stmt3 = CONCAT('UPDATE ', wp_posts, ' SET post_content = REPLACE(post_content, \'', old_domain, '\', \'', new_domain, '\');');
    SET @stmt4 = CONCAT('UPDATE ', wp_postmeta, ' SET meta_value = REPLACE(meta_value, \'', old_domain, '\', \'', new_domain, '\');');

    PREPARE stmt1 FROM @stmt1;
    PREPARE stmt2 FROM @stmt2;
    PREPARE stmt3 FROM @stmt3;
    PREPARE stmt4 FROM @stmt4;

    EXECUTE stmt1;
    EXECUTE stmt2;
    EXECUTE stmt3;
    EXECUTE stmt4;

    DEALLOCATE PREPARE stmt1;
    DEALLOCATE PREPARE stmt2;
    DEALLOCATE PREPARE stmt3;
    DEALLOCATE PREPARE stmt4;


END $$

DELIMITER ;

# নতুন ডোমেইন নাম, পুরানো ডোমেইন নাম এবং ওয়ার্ডপ্রেস টেবিল প্রিফিক্স লিখুন।

CALL wp_change_domain('www.new-site.com', 'www.old-site.com', 'wp_');

এই স্ক্রিপ্টটি home, siteurl, guid, post_content, এবং meta_value ক্ষেত্রগুলো আপডেট করবে।

উপরিউক্ত ধাপগুল যথাযথভাবে পালন করলে আপনি আপনার WordPress Site টি সফল ভাবে স্থানান্তরে সক্ষম হবেন এবং Browser addres bar – এ https://www.new-site.com/ জাতিও URL এর মাধ্যমে আপনার স্থানান্তরিত WordPress site এ প্রবেস করতে পারবেন।


উপসংহার

একটি বড় WordPress সাইট মাইগ্রেট করতে সঠিক পরিকল্পনা দরকার, বিশেষ করে বড় ডাটাবেস এবং ফাইল নিয়ে কাজ করার সময়। mydumper, rsync, PHP, এবং SQL প্রক্রিয়াগুলোর সংমিশ্রণ নিশ্চিত করে যে ডাটাবেস এবং আপলোডস ফোল্ডার উভয়ই কার্যকরীভাবে স্থানান্তর করা যাবে। এই ধাপগুলো অনুসরণ করলে মাইগ্রেশন সফলভাবে সম্পন্ন হবে।


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *