انتقال سایت وردپرس بین هاستها: راهنمای جامع Backup/Restore
انتقال سایت وردپرس بین هاستها: راهنمای کامل Backup/Restore
در این مقاله مرحلهبهمرحله فرایند انتقال سایت وردپرس بین هاستها را با تمرکز بر روش امن Backup/Restore توضیح میدهیم. هدف این راهنما کاهش ریسک، به حداقل رساندن زمان قطعی و ارائه چکلیستها و مثالهای عملی است تا سوئیچ نهایی با اطمینان انجام شود.
چرا برنامهریزی و پشتیبانگیری هنگام انتقال ضروری است؟
هر انتقال شامل خطراتی مثل از دست رفتن فایل، ناسازگاری نسخهٔ محیط اجرایی، خطاهای دیتابیس و مشکلات تنظیمات است. تهیه نسخهٔ کامل پشتیبان پیش از هر اقدامی به شما امکان بازگشت سریع به حالت قبلی را میدهد و زمان بازیابی را کاهش میدهد. علاوه بر این، برنامهریزی زمانبندی و اطلاع به کاربران باعث کاهش اثرات منفی بر تجربهٔ کاربری میشود.
پیشنیازها و تنظیمات قبل از شروع انتقال
- دسترسی مدیریتی (کنترلپنل، FTP/SFTP، SSH) به هر دو هاست مبدا و مقصد.
- اطلاعات اتصال دیتابیس: نام، کاربر، رمز و میزبان.
- فضای کافی در هاست مقصد و محدودیت آپلود/حافظهٔ PHP بررسی شود.
- تطابق نسخهٔ PHP، افزونهها/ماژولهای لازم و تنظیمات وبسرور را بررسی کنید.
- فهرست آیتمهای ویژه: کرونجابها، تنظیمات ایمیل، رکوردهای DNS، تنظیمات کش یا CDN.
- برنامهٔ زمانبندی در بازهٔ کمترافیک و اعلان برای کاربران و تیم پشتیبانی.
مراحل عملی انتقال سایت بین هاستها (گامبهگام)
فرآیند را به چهار مرحلهٔ اصلی تقسیم کنید: تهیهٔ بکاپ، بررسی و استخراج، بازگردانی روی مقصد و تست نهایی. هر مرحله را با دقت اجرا کنید:
گام 1 — تهیهٔ نسخهٔ پشتیبان کامل در هاست مبدا
- اگر کنترلپنل گزینهٔ Full Backup دارد، از آن استفاده کنید تا فایلها، تنظیمات و دیتابیس پوشش داده شوند. در غیاب آن، حداقل از پوشهٔ محتوا و دیتابیسها پشتیبان تهیه کنید.
- کپی فایلهای پیکربندی (مانند فایل تنظیمات اصلی و فایل بازنویسی URL) و پوشهٔ رسانهها را جداگانه نگه دارید.
- بکاپها را در دو محل امن ذخیره کنید: یک نسخهٔ محلی رمزگذاریشده و یک نسخه در سرویس ذخیرهسازی خارجی. ثبت حجم و تعداد فایلها به بررسی تطابق کمک میکند.
- برای دیتابیس از دستور mysqldump یا ابزار کنترلپنل خروجی SQL تهیه کنید:
mysqldump -u DB_USER -p DB_NAME > backup.sql
گام 2 — استخراج و بررسی محتوای پشتیبان روی سیستم محلی
- فایل بکاپ را روی محیط محلی استخراج و بررسی کنید: پوشهٔ uploads، فایلهای پیکربندی و حضور جداول دیتابیس را تایید نمایید.
- فایل SQL را باز کنید و تعداد جداول و حجم تقریبی واردسازی را برآورد کنید تا زمانبندی واردسازی را بهتر برنامهریزی کنید.
- اگر لازم است آدرسها (URLs) در دیتابیس تغییر کنند، قبل از واردسازی فهرست جداول و ستونهای حاوی URL را شناسایی کنید تا جایگزینی بدون آسیبزدن به دادههای سریالشده انجام شود.
گام 3 — بازگردانی روی هاست مقصد
- اگر هاست مقصد گزینهٔ Full Restore دارد از آن استفاده کنید. در غیر این صورت بازگردانی دستی را طبق مراحل زیر انجام دهید.
- فایلها را با SFTP/SSH یا File Manager در مسیر عمومی وب آپلود کنید. برای فایلهای بزرگ از انتقال سرور-به-سرور یا ابزار rsync استفاده کنید تا سرعت و پایداری بهتری داشته باشید:
rsync -avz /source/path/ user@dest:/public_html/
- در هاست مقصد یک دیتابیس جدید بسازید و کاربر مناسب با دسترسیهای لازم ایجاد کنید. سپس فایل SQL را وارد کنید:
mysql -u DB_USER -p DB_NAME < backup.sql
- فایل پیکربندی سایت را با مشخصات جدید دیتابیس بهروز کنید و تنظیمات پایه مثل آدرس سایت و مسیرها را کنترل کنید.
- مجوزهای فایل و پوشهها را طبق استاندارد تنظیم کنید (معمولاً پوشهها 755 و فایلها 644) و در صورت نیاز مالکیت (owner) را اصلاح کنید.
گام 4 — تست محلی، سوئیچ DNS و نظارت
- قبل از تغییر رکوردهای DNS، سایت را با ویرایش فایل hosts روی دستگاه محلی به آدرس IP سرور مقصد متصل و تمام فرایندهای کلیدی را تست کنید.
- عملکرد صفحات اصلی، ورود کاربران، فرمها، فرایندهای پرداخت و ارسال ایمیل را بررسی کنید. برای تست دقیقتر کش و CDN را موقتاً غیرفعال کنید.
- پس از اطمینان، رکوردهای DNS را بهروزرسانی کنید و زمان انتشار را در نظر داشته باشید. پس از انتشار، مجدداً تست کامل انجام دهید و لاگها را بررسی کنید.
نمونهٔ زمانبندی برای یک سایت با حجم متوسط
در این مثال فرض میکنیم فایلها حدود 5–10 گیگابایت و دیتابیس 200–500 مگابایت است. زمان واقعی به پهنای باند و قدرت سرورها وابسته است:
- آمادهسازی و بکاپ (30–60 دقیقه): ثبت اطلاعات اتصال، تولید و دانلود بکاپ کامل.
- انتقال فایلها (1–3 ساعت): با SFTP یا rsync، بسته به سرعت شبکه.
- واردسازی دیتابیس (5–30 دقیقه): بسته به حجم و ابزار مورد استفاده.
- پیکربندی و تست محلی (30–90 دقیقه): اصلاح تنظیمات و بررسی عملکرد.
- سوئیچ DNS و نظارت (تا 48 ساعت): پیگیری انتشار رکورد و رفع ایرادات احتمالی.
نکتهٔ عملی: برای کاهش ریسک، بازگشت به هاست قبلی را احتمالی در برنامه بگذارید تا اگر مشکلی رخ داد زمان کافی برای اصلاح داشته باشید.
فهرست کنترل سریع قبل از سوئیچ نهایی
- بکاپ کامل در دو محل امن ذخیره شده و قابل بازیابی است.
- اطلاعات دیتابیس در فایل پیکربندی بهروز شده و اتصال تست شده است.
- آدرسهای سایت در دیتابیس بازبینی و در صورت نیاز اصلاح شدهاند.
- مجوزها و مالکیت فایلها درست تنظیم شدهاند.
- نسخهٔ PHP و ماژولهای مورد نیاز با سایت تطابق دارد.
- کرونها، ارسال ایمیل و تنظیمات کش بررسی و تست شدهاند.
رفع خطاهای رایج پس از بازگردانی
خطای داخلی سرور (500)
علل معمول: ناسازگاری نسخهٔ PHP، خطا در فایل پیکربندی وبسرور یا مجوزهای نادرست. با بررسی لاگ خطا شروع کنید و سپس فایل پیکربندی و مجوزها را اصلاح کنید.
خطاهای اتصال به دیتابیس
بررسی کنید نام دیتابیس، نام کاربری، رمز و میزبان درست وارد شدهاند و سرویس دیتابیس در مقصد در دسترس است. همچنین از دسترسی میزبان وب به دیتابیس اطمینان حاصل کنید.
فایلهای رسانهای نمایش داده نمیشوند
مطمئن شوید پوشهٔ uploads بهدرستی آپلود شده و مالکیت/مجوزها صحیح است. همچنین قوانین بازنویسی URL در فایل پیکربندی وبسرور را بررسی کنید.
آدرسها و لینکها صحیح نیستند
اگر دامنه یا زیرشاخه تغییر کرده باید آدرسها در دیتابیس اصلاح شوند. برای حفظ دادههای سریالشده از ابزارهای تخصصی جایگزینی در دیتابیس استفاده کنید یا از اسکریپتهای معتبر بهره ببرید.
ابزارها و منابع مفید
برای بررسی استانداردهای وب میتوانید به مستندات رسمی استانداردها مراجعه کنید: W3C. همچنین ابزارهای متداول برای انتقال و مدیریت دیتابیس شامل دستورات mysqldump، mysql و ابزارهای انتقال امن مانند rsync و SFTP هستند. اگر به محیط خط فرمان دسترسی دارید، کار با SSH و rsync سرعت و اطمینان را افزایش میدهد.
سوالات متداول (FAQ)
آیا همیشه باید Full Backup تهیه شود؟
بله، Full Backup ایمنترین گزینه است چون فایلها، دیتابیس و تنظیمات را پوشش میدهد. در شرایط محدودیت شبکه حداقل از پوشههای مهم و دیتابیس پشتیبان تهیه کنید.
اگر انتقال با خطا مواجه شد، بهترین واکنش چیست؟
سریعترین اقدام بازگردانی از نسخهٔ پشتیبان و ادامهٔ عیبیابی در محیط تست است. لاگها را بررسی کنید و تغییرات را مرحلهبهمرحله تست کنید تا منبع مشکل مشخص شود.
چطور آدرسهای قدیمی را بدون خرابشدن دادههای سریالشده تغییر دهم؟
از ابزارهای مخصوص جایگزینی در دیتابیس استفاده کنید که سریالسازی را حفظ میکنند یا از اسکریپتهای تستشده بهره ببرید. در صورت نیاز از تیم پشتیبانی میزبان کمک بگیرید.
نکات امنیتی و بهترین شیوهها
- رمزهای مدیریتی و کلیدهای API را پس از انتقال بازنشانی یا بررسی کنید.
- برای انتقال از پروتکلهای امن مثل SFTP/SSH استفاده کنید و از FTP عادی پرهیز کنید.
- بکاپها را رمزنگاری و در مکانهای مختلف ذخیره کنید تا قابلیت بازیابی تضمین شود.
- دسترسیها را طبق اصل کمترین مجوز (least privilege) تنظیم کنید.