سایت خراب شده و بکاپ در دستتان است؛ حالا استرس واقعی شروع می‌شود. بازگردانی بکاپ بد پیش برود، می‌تواند وضعیت را بدتر کند: دیتابیس نیمه‌واردشده، فایل‌های ناسازگار یا لینک‌هایی که هنوز به سایت قدیمی اشاره می‌کنند. با یک ترتیب مشخص این خطرها کنترل می‌شود.

اگر هنوز بکاپ منظمی ندارید، اول بکاپ خودکار وردپرس را بچینید. اگر هدف شما جابه‌جایی کامل سایت است، انتقال وردپرس به هاست جدید مسیر مرتبط‌تری است.

قبل از هر کاری#

  1. از وضعیت فعلی بکاپ بگیرید. حتی سایت خراب هم ممکن است محتوایی داشته باشد که در بکاپ قدیمی نیست.
  2. بکاپ را بررسی کنید. فایل خالی یا ناقص نباشد، تاریخش درست باشد و هم دیتابیس داشته باشد هم فایل‌ها.
  3. علت خرابی را حدس بزنید. اگر مشکل فقط از یک افزونه‌ی ناسازگار است، لازم نیست کل سایت را برگردانید؛ رفع تداخل افزونه‌ها سریع‌تر و کم‌خطرتر است.
  4. تعیین کنید چه چیزی را برمی‌گردانید. گاهی فقط دیتابیس لازم است (محتوا خراب شده) و گاهی فقط فایل‌ها (قالب یا افزونه خراب شده).

راه اول: بازگردانی با افزونه#

اگر بکاپ را با افزونه گرفته‌اید، بازگردانی هم از همان افزونه ساده‌ترین راه است:

  1. وردپرس را (در صورت از بین رفتن) تازه نصب کنید و همان افزونه را فعال کنید.
  2. در بخش بکاپ‌های افزونه، فایل‌های موجود را اضافه یا از مقصد ذخیره‌ی بیرونی بازیابی کنید.
  3. گزینه‌ی بازگردانی را باز کنید و اجزای لازم (دیتابیس، افزونه‌ها، قالب‌ها، بارگذاری‌ها) را انتخاب کنید.
  4. منتظر بمانید تا فرایند تمام شود و از پیشخوان خارج و دوباره وارد شوید.

اگر هاست محدودیت زمان اجرا یا حجم آپلود دارد، فایل‌های بزرگ می‌توانند وسط کار قطع شوند. در این حالت راه دستی قابل‌اتکاتر است.

راه دوم: بازگردانی دستی#

۱. فایل‌ها#

  • با مدیر فایل هاست یا FTP وارد شوید.
  • اگر مشکل از فایل‌هاست، پوشه‌ی wp-content فعلی را پیش از جایگزینی تغییر نام بدهید تا بعداً قابل برگشت باشد.
  • پوشه‌ی wp-content بکاپ را در مسیر سایت آپلود کنید. اگر فایل‌ها به‌صورت آرشیو است، آن را روی هاست باز کنید؛ سریع‌تر از آپلود هزاران فایل کوچک است.
  • فایل wp-config.php را فقط وقتی جایگزین کنید که مطمئنید اطلاعاتش با دیتابیس فعلی می‌خواند.

۲. دیتابیس#

از ابزار مدیریت دیتابیس هاست (معمولاً phpMyAdmin) استفاده کنید:

  1. دیتابیس سایت را انتخاب کنید.
  2. اگر دیتابیس پر است، همه‌ی جدول‌های قدیمی را حذف کنید (فقط بعد از اینکه مطمئن شدید بکاپ اخیر دارید) یا یک دیتابیس تازه بسازید.
  3. از بخش ایمپورت، فایل sql یا sql.gz را انتخاب کنید و اجرا کنید.

اگر فایل از سقف آپلود phpMyAdmin بزرگ‌تر است، از خط فرمان استفاده کنید:

Bash
gunzip < db-backup.sql.gz | mysql -u DBUSER -p DBNAME

یا اگر WP-CLI دارید:

Bash
wp db import db-backup.sql

در هر دو حالت، رمز را در خود دستور ننویسید تا در تاریخچه‌ی ترمینال نماند.

۳. تنظیم wp-config.php#

بعد از ایمپورت، این مقدارها را با دیتابیس فعلی تطبیق دهید:

ثابتمقدار
DB_NAMEنام دیتابیس فعلی
DB_USERکاربر دیتابیس
DB_PASSWORDرمز کاربر
DB_HOSTمعمولاً localhost
$table_prefixباید با پیشوند جدول‌های واردشده یکی باشد

نکته‌ی رایج: اگر پیشوند در فایل با پیشوند جدول‌ها فرق داشته باشد، وردپرس تصور می‌کند نصب خالی است و صفحه‌ی نصب را نشان می‌دهد.

وقتی دامنه یا مسیر عوض شده است#

آدرس سایت در دیتابیس ذخیره شده است. اگر روی دامنه‌ی جدید بازگردانی می‌کنید، لینک‌ها هنوز به آدرس قدیمی می‌روند. با WP-CLI این کار تمیز انجام می‌شود:

Bash
wp search-replace 'https://old.example' 'https://new.example' --skip-columns=guid --dry-run

ابتدا با --dry-run ببینید چه تغییرهایی انجام می‌شود، بعد همان دستور را بدون آن اجرا کنید. ویرایش مستقیم فایل sql با جست‌وجو و جایگزینی ساده، داده‌های سریالایزشده را خراب می‌کند. جزئیات این مسیر در انتقال وردپرس به هاست جدید آمده است.

بعد از بازگردانی: فهرست بررسی#

  • پیوندهای یکتا را دوباره ذخیره کنید (تنظیمات، پیوند یکتا، ذخیره‌ی بدون تغییر) تا قواعد بازنویسی ساخته شود.
  • کش افزونه، کش مرورگر و کش CDN را خالی کنید.
  • ورود به پیشخوان، بارگذاری تصویرها، فرم‌ها و صفحه‌ی اصلی را امتحان کنید.
  • اگر فروشگاه دارید، یک سفارش آزمایشی ثبت کنید.
  • تنظیم «دیده‌نشدن در موتورهای جست‌وجو» را اگر روی محیط آزمایشی روشن کرده‌اید، در سایت اصلی خاموش کنید.
  • اگر مشکل خاصی پیش آمد، خطاهای رایج وردپرس را ببینید.

چند نکته‌ی تکمیلی#

اگر بازگردانی را روی سایت زنده انجام می‌دهید، پیش از شروع صفحه‌ی «در حال نگهداری» نشان بدهید تا مشتریان وسط کار سفارش یا دیدگاه ثبت نکنند؛ چیزی که بعد از بازگردانی از بین می‌رود. اگر سایت پرتردد است، بهتر است اول روی یک ساب‌دامنه‌ی آزمایشی بازگردانی کنید، درستی را بسنجید و بعد روی سایت اصلی اجرا کنید.

به فاصله‌ی زمانی بکاپ هم توجه کنید. سفارش‌ها، دیدگاه‌ها و کاربران ثبت‌شده بعد از زمان بکاپ در نسخه‌ی بازگردانی‌شده وجود ندارند. اگر فروشگاه دارید، بعد از بازگردانی با پنل درگاه پرداخت تطبیق بدهید که پرداخت‌های آن بازه بدون سفارش نمانده باشد.

وقتی ایمپورت دیتابیس با خطای «حداکثر اندازه» یا «زمان اجرا» قطع می‌شود، فایل را از خط فرمان وارد کنید یا از پشتیبانی هاست بخواهید سقف را موقتاً بالا ببرند. اگر پس از بازگردانی صفحه‌ی سفید دیدید، حالت اشکال‌زدایی را روشن و گزارش خطا را بخوانید.

خلاصه#

  • پیش از بازگردانی از وضعیت فعلی بکاپ بگیرید و سالم‌بودن فایل بکاپ را بررسی کنید.
  • اگر بکاپ با افزونه گرفته شده، بازگردانی با همان افزونه ساده‌ترین راه است.
  • در روش دستی ابتدا فایل‌ها، سپس دیتابیس و بعد تنظیم wp-config.php را انجام دهید.
  • هنگام تغییر دامنه، آدرس‌ها را با ابزار جست‌وجو و جایگزینی امن عوض کنید، نه با ویرایش ساده‌ی متن.
  • بعد از بازگردانی پیوند یکتا را ذخیره، کش را خالی و عملکرد اصلی سایت را آزمایش کنید.