آموزش

بازگردانی بکاپ سایت؛ راهنمای کامل بازیابی فایل و دیتابیس

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

آموزش

چرا بازگردانی بکاپ معمولاً سخت‌تر از گرفتن بکاپ است؟

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

در این راهنما، فرض می‌کنیم با سی‌پنل یا دایرکت‌ادمین کار می‌کنید و بکاپ شما شامل دو بخش اصلی است: فایل‌های سایت (شامل کدهای PHP، تصاویر، قالب و افزونه‌ها) و خروجی دیتابیس (فایل SQL). ترتیب کار مهم است: اول فایل‌ها، بعد دیتابیس، و در نهایت بررسی سلامت. اگر این ترتیب را رعایت نکنید، ممکن است سایت شما نیمه‌کاره بماند.

مرحله اول: آماده‌سازی قبل از بازگردانی بکاپ

قبل از هر کاری، یک بررسی سریع انجام دهید تا از فاجعه جلوگیری کنید:

  • فضای هاست را چک کنید: در سی‌پنل، بخش Disk Usage را باز کنید و مطمئن شوید حداقل دو برابر حجم بکاپ، فضای خالی دارید. اگر بکاپ ۲ گیگابایت است، حداقل ۴ گیگابایت فضا نیاز دارید.
  • نسخه PHP را یادداشت کنید: اگر بکاپ قدیمی است و سایت شما با PHP 7.4 کار می‌کرد، حالا که PHP 8.2 روی سرور فعال است، ممکن است کدهای قدیمی خطا بدهند. در سی‌پنل، بخش Select PHP Version را چک کنید.
  • یک بکاپ تازه از وضعیت فعلی بگیرید: اگر سایت شما الان خراب است، باز هم قبل از بازگردانی، از فایل‌ها و دیتابیس فعلی یک کپی بگیرید. شاید بعداً به یک فایل خاص نیاز پیدا کنید.

ابزارهای لازم

برای بازگردانی بکاپ به این ابزارها نیاز دارید:

  • یک کلاینت FTP/SFTP مثل FileZilla برای آپلود فایل‌ها
  • دسترسی به phpMyAdmin (در سی‌پنل) یا ابزار مشابه
  • دسترسی SSH (اختیاری، اما برای سایت‌های بزرگ توصیه می‌شود)

مرحله دوم: بازگردانی فایل‌های سایت

این مرحله ساده‌ترین بخش است، اما اشتباهات رایجی دارد. اگر بکاپ شما یک فایل فشرده مثل site-backup.zip است، دو راه دارید:

روش اول: آپلود و استخراج در هاست

  1. فایل فشرده را از طریق FileZilla به پوشه public_html (یا www در دایرکت‌ادمین) آپلود کنید.
  2. در سی‌پنل، وارد File Manager شوید و فایل را انتخاب کنید.
  3. روی فایل راست‌کلیک کرده و گزینه Extract را بزنید.
  4. مسیر استخراج را /public_html قرار دهید و Extract را بزنید.

اگر حجم بکاپ بالای ۵۰۰ مگابایت است، استخراج از طریق File Manager ممکن است timeout بدهد. در این حالت، از SSH استفاده کنید:

cd /home/username/public_html
unzip site-backup.zip

اگر فایل شما .tar.gz است:

tar -xzvf site-backup.tar.gz

روش دوم: بازگردانی کامل از بکاپ سی‌پنل

اگر بکاپ شما از طریق خود سی‌پنل گرفته شده (فایل‌هایی با پسوند .tar.gz در پوشه backup)، می‌توانید از بخش Backup در سی‌پنل، گزینه Restore a Home Directory Backup را انتخاب کنید. این روش تمام فایل‌ها را به جای اصلی برمی‌گرداند.

اشتباه رایج: خیلی از کاربران فایل‌ها را داخل یک پوشه تودرتو آپلود می‌کنند. مثلاً بعد از استخراج، فایل‌ها در public_html/site-backup/ قرار می‌گیرند نه خود public_html. نتیجه: سایت شما با آدرس example.com/site-backup بالا می‌آید. بعد از استخراج، حتماً بررسی کنید که فایل index.php یا wp-config.php مستقیماً در public_html باشد.

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

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

ساخت دیتابیس جدید

اگر دیتابیس قبلی حذف شده یا نام آن تغییر کرده، اول یک دیتابیس جدید بسازید:

  1. در سی‌پنل، وارد MySQL Databases شوید.
  2. یک دیتابیس جدید با نام دلخواه بسازید (مثلاً mydb_backup).
  3. یک کاربر جدید بسازید و تمام دسترسی‌ها (ALL PRIVILEGES) را به آن بدهید.
  4. نام دیتابیس، کاربر و رمز را یادداشت کنید؛ بعداً در فایل کانفیگ سایت نیاز خواهید داشت.

Import فایل SQL

حالا فایل .sql را import کنید:

  1. وارد phpMyAdmin شوید.
  2. دیتابیس جدید را از منوی سمت چپ انتخاب کنید.
  3. روی تب Import کلیک کنید.
  4. فایل SQL را انتخاب کنید و دکمه Go را بزنید.

اگر فایل SQL بزرگ است (بیش از ۵۰ مگابایت)، phpMyAdmin معمولاً خطای timeout می‌دهد. راه‌حل: فایل را با SSH import کنید:

mysql -u username -p mydb_backup < /home/username/backup.sql

اگر فایل فشرده است، اول از حالت فشرده خارج کنید:

gunzip backup.sql.gz
mysql -u username -p mydb_backup < backup.sql

به‌روزرسانی فایل کانفیگ

بعد از import، باید اطلاعات اتصال دیتابیس را در فایل کانفیگ سایت اصلاح کنید:

  • وردپرس: فایل wp-config.php را ویرایش کنید و مقادیر DB_NAME، DB_USER و DB_PASSWORD را با اطلاعات جدید جایگزین کنید.
  • لاراول: فایل .env را ویرایش کنید و مقادیر DB_DATABASE، DB_USERNAME و DB_PASSWORD را تغییر دهید.
  • جوملا: فایل configuration.php را ویرایش کنید.
اشتباه رایج: اگر دیتابیس قبلی هنوز وجود دارد و شما فایل SQL جدید را روی همان import می‌کنید، ممکن است خطای Table already exists بگیرید. راه‌حل: قبل از import، تمام جداول قبلی را Drop کنید. در phpMyAdmin، دیتابیس را انتخاب کنید، تب Operations را بزنید و گزینه Drop all tables را انتخاب کنید. یا در SSH:
mysql -u username -p -e "DROP DATABASE mydb_backup; CREATE DATABASE mydb_backup;"

مرحله چهارم: بررسی سلامت پس از بازگردانی

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

بررسی فایل‌ها و پرمیشن‌ها

اولین کاری که می‌کنید، بررسی پرمیشن فایل‌هاست. پرمیشن صحیح برای پوشه‌ها 755 و برای فایل‌ها 644 است. اگر سایت ارور Permission denied داد، از SSH این دستور را اجرا کنید:

find /home/username/public_html -type d -exec chmod 755 {} \;
find /home/username/public_html -type f -exec chmod 644 {} \;

بررسی اتصال دیتابیس

اگر ارور Error establishing a database connection دیدید، یعنی اطلاعات دیتابیس در فایل کانفیگ اشتباه است. سه مورد را چک کنید:

  1. نام دیتابیس دقیقاً همانی است که در سی‌پنل ساخته‌اید؟ (معمولاً با پیشوند username_ شروع می‌شود)
  2. نام کاربری و رمز درست است؟
  3. هاست دیتابیس localhost است یا آدرس دیگری؟

بررسی لینک‌ها و آدرس سایت

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

UPDATE wp_options SET option_value = 'https://example.com' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'https://example.com' WHERE option_name = 'home';

اگر سایت شما از وردپرس استفاده نمی‌کند، ممکن است لازم باشد فایل .htaccess را بازنویسی کنید. در سی‌پنل، وارد File Manager شوید، فایل .htaccess را باز کنید و مطمئن شوید محتوای آن با نسخه بکاپ مطابقت دارد.

بررسی خطاهای PHP

اگر صفحه سفید (White Screen of Death) دیدید، خطاهای PHP را فعال کنید. در فایل wp-config.php (برای وردپرس) این خط را اضافه کنید:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

سپس فایل wp-content/debug.log را بررسی کنید. رایج‌ترین خطا بعد از بازگردانی بکاپ، ناسازگاری نسخه PHP است. اگر خطای مربوط به توابع قدیمی می‌بینید، نسخه PHP را در سی‌پنل به نسخه‌ای که سایت با آن کار می‌کرد برگردانید.

نکات تکمیلی برای بازگردانی موفق

بازگردانی سایت‌های بزرگ

اگر سایت شما بیش از ۵ گیگابایت حجم دارد، بازگردانی از طریق FTP زمان‌بر است. بهترین راه، استفاده از SSH و ابزار rsync است:

rsync -avz --progress /home/backup/site/ /home/username/public_html/

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

بازگردانی دیتابیس با ابزارهای تخصصی

برای دیتابیس‌های خیلی بزرگ (بیش از ۱ گیگابایت)، از ابزار BigDump استفاده کنید. این اسکریپت PHP را در پوشه سایت آپلود کنید و فایل SQL را از طریق مرورگر import کنید. این روش برای هاست‌های اشتراکی که SSH ندارند، بهترین گزینه است.

جمع‌بندی

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

  1. فضا و نسخه PHP را بررسی کنید.
  2. فایل‌ها را در public_html بازگردانی کنید.
  3. دیتابیس جدید بسازید و فایل SQL را import کنید.
  4. فایل کانفیگ را با اطلاعات دیتابیس جدید به‌روزرسانی کنید.
  5. پرمیشن‌ها، لینک‌ها و خطاهای PHP را بررسی کنید.

اگر این مراحل را به‌ترتیب انجام دهید، در ۹۰ درصد موارد سایت شما بدون مشکل بالا می‌آید. برای ۱۰ درصد باقی‌مانده، لاگ‌های خطا را بررسی کنید و مطمئن شوید نسخه PHP و افزونه‌ها با بکاپ شما سازگار هستند. اگر هاست شما از ابزار مدیریت بکاپ خودکار پشتیبانی می‌کند (بسیاری از سرویس‌های هاستینگ ایران چنین امکانی دارند)، حتماً از آن استفاده کنید تا در مواقع اضطراری، بازگردانی بکاپ در چند کلیک انجام شود.

پشتیبانی سرورنت

تیم فنی و تحریریه‌ی سرورنت — تخصص در زیرساخت، شبکه و میزبانی وب.

هاست وردپرس
اشتراک‌گذاری:

دیدگاه‌ها ۰

هنوز دیدگاهی ثبت نشده؛ اولین نفر باشید!

دیدگاه خود را بنویسید

سرویس مرتبط

هاست وردپرس

استک اختصاصی وردپرس با LiteSpeed Enterprise و NVMe — نصب خودکار، آپدیت امن، استیجینگ و کشی که سایت شما را در صدر نتایج گوگل نگه می‌دارد.