
بکاپ وردپرس یعنی یک نسخه کامل از سایت، تا اگر سایت هک شد، بهروزرسانی چیزی را خراب کرد یا هاست از دسترس رفت، بشود سایت را از روی آن برگرداند. بیشتر صاحبان سایت روز مبادا میفهمند بکاپشان به کار نمیآید: یا فقط دیتابیس را داشت و تصویرها نبودند، یا روی همان سروری بود که از دست رفت، یا کسی هیچوقت بازگردانیاش را امتحان نکرده بود. این راهنما میگوید بکاپ کامل از چه تشکیل میشود، هر چند وقت و با چه روشی گرفته شود، کجا بماند و چطور بازگردانیاش را از پیش بیازمایید. مبنای فنی آن راهنمای رسمی پشتیبانگیری وردپرس است.
فهرست مطالب
خلاصه در یک نگاه
| بخش | چه چیزی را نگه میدارد | چه وقت |
|---|---|---|
| دیتابیس | نوشتهها، برگهها، دیدگاهها، کاربران، تنظیمات و سفارشها | سایت کمتغییر هفتگی، سایت پرتحرک روزانه، و همیشه پیش از بهروزرسانی |
| پوشه wp-content | قالب، افزونهها و همه تصویرها و فایلهای بارگذاریشده | همراه دیتابیس، در همان نوبت |
| wp-config.php و .htaccess | اطلاعات اتصال به دیتابیس و قانونهای نشانی و ریدایرکت | همراه دیتابیس |
| هسته وردپرس | پوشههای wp-admin و wp-includes | لازم نیست؛ از wordpress.org دوباره دانلود میشود |
نگهداری: دستکم سه تا پنج نسخه اخیر، در چند جای جدا. آزمون: هر چند ماه یک بار، بازگردانی روی یک کپی جدا از سایت.
بکاپ کامل وردپرس از چه چیزهایی تشکیل میشود؟
هر سایت وردپرسی دو بخش جدا دارد و بکاپ کامل هر دو را لازم دارد. راهنمای رسمی وردپرس هم میگوید برای بازگرداندن کامل یک سایت معمولی، به هر دو نیاز دارید.
- دیتابیس: متن نوشتهها و برگهها، دیدگاهها، حساب کاربران، تنظیمات سایت و افزونهها، و اگر فروشگاه دارید، سفارشها. این بخش هر روز عوض میشود.
- فایلها: پوشه
wp-contentبا قالب، افزونهها و همه تصویرهایی که بارگذاری کردهاید؛ فایلwp-config.phpکه اطلاعات اتصال به دیتابیس در آن است؛ و فایل.htaccessکه قانونهای نشانی و ریدایرکت را نگه میدارد.
هسته وردپرس، یعنی پوشههای wp-admin و wp-includes، را میشود از wordpress.org دوباره دانلود کرد و بکاپ گرفتن از آن ضروری نیست. ولی بکاپی که فقط دیتابیس را دارد، سایتی بیتصویر و بیقالب برمیگرداند. این رایجترین ایراد بکاپهای دستی است.
چون wp-config.php رمز دیتابیس را دارد، فایل بکاپ را مثل رمز نگه دارید: جایی که فقط خودتان به آن دسترسی دارید.
هر چند وقت یک بار بکاپ بگیریم؟
راهنمای وردپرس جواب را به این بسته میداند که از دست دادن چه مقدار محتوا برایتان قابلتحمل است: برای سایت کوچکی که کم مطلب منتشر میکند هفتهای یک بار، و برای سایت پرتحرک روزانه.
- فروشگاهی که هر روز سفارش میگیرد، یا سایتی که کاربرانش ثبتنام میکنند و دیدگاه میگذارند: روزانه.
- سایت شرکتی که ماهی چند بار تغییر میکند: هفتگی.
- در هر حال، پیش از بهروزرسانی وردپرس، قالب یا افزونهها و پیش از انتقال سایت به هاست تازه، یک بکاپ تازه بگیرید.
ترتیب هم مهم است: اول دیتابیس، بعد فایلها، در یک نوبت. اینطور دو بخش بکاپ با هم جورند.
سه روش بکاپ گرفتن از سایت وردپرسی
۱. ابزار پشتیبانگیری پنل هاست
بیشتر هاستها ابزار پشتیبانگیری دارند. در پنلهایی مثل cPanel و DirectAdmin بخشی به نام Backup هست که از فایلها و دیتابیس، با هم یا جدا، نسخه میگیرد. اگر نمیدانید هاستتان چه امکانی دارد، از پشتیبانی هاست بپرسید.
دو نکته را در نظر داشته باشید. هاست معمولاً از کل سرور بکاپ میگیرد، ولی گرفتن یک نسخه از آن زمان میبرد؛ برای همین راهنمای وردپرس توصیه میکند پشتیبانگیری و بازگردانی را خودتان هم بلد باشید. و بکاپی که فقط روی همان سرور میماند، با خود سرور از دست میرود.
۲. افزونه بکاپ وردپرس
افزونه بهترین راه برای بکاپ خودکار است: طبق برنامه از دیتابیس و فایلها نسخه میگیرد و آن را به جایی بیرون از هاست میفرستد. دو نمونه پرکاربرد، طبق صفحه هر افزونه در مخزن وردپرس هنگام نوشتن این راهنما:
- UpdraftPlus: نسخه رایگانش طبق برنامه، از هر چند ساعت تا ماهانه، بکاپ میگیرد، آن را به Google Drive، Dropbox، Amazon S3 یا FTP میفرستد و بازگردانی را از همان پیشخوان انجام میدهد.
- BackWPup: نسخه رایگانش دیتابیس و فایلها را طبق برنامه به مقصدهایی مثل Dropbox، FTP و Amazon S3 میفرستد. فرستادن به Google Drive در نسخه پولی است، و بازگردانی در نسخه رایگان فقط برای بکاپی است که خودتان بارگذاری کنید.
هر افزونهای که انتخاب میکنید، چهار چیز را در آن ببینید: دیتابیس و فایلها هر دو در بکاپ باشند، برنامه زمانی داشته باشد، بکاپ را بیرون از هاست بفرستد، و بدانید بازگردانی با آن چطور انجام میشود. بعد از راهاندازی، یک بکاپ آزمایشی بفرستید و رسیدنش را در مقصد ببینید. بعضی هاستها اتصال به سرویسهای خارجی را محدود میکنند و افزونه ممکن است بیصدا شکست بخورد.
۳. روش دستی: phpMyAdmin و مدیر فایل
دیتابیس: در phpMyAdmin دیتابیس سایت را انتخاب کنید و به زبانه Export بروید. حالت Quick همه جدولها را با قالب SQL خروجی میگیرد. در حالت Custom میتوانید فشردهسازی gzip و گزینه افزودن دستور DROP TABLE را هم انتخاب کنید. اگر دیتابیس با برنامه دیگری مشترک است، فقط جدولهایی را بردارید که با پیشوند جدول وردپرس شروع میشوند: معمولاً wp_، یا مقداری که در wp-config.php آمده است. phpMyAdmin با دیتابیسهای بزرگ کنار نمیآید؛ برای آنها ابزار پنل هاست یا دستور mysqldump در خط فرمان بهتر است. جزئیات در راهنمای پشتیبانگیری از دیتابیس وردپرس آمده است.
فایلها: در مدیر فایل (File Manager) هاست، پوشه wp-content و دو فایل wp-config.php و .htaccess را فشرده کنید و فایل zip را دانلود کنید. با FTP هم میشود همینها را دانلود کرد. بعد از دانلود، فایل فشرده را از روی هاست پاک کنید. راهنمای پشتیبانگیری از فایلهای وردپرس همین روشها را آورده است.
بکاپ را کجا نگه داریم؟
راهنمای وردپرس میگوید دستکم سه تا پنج بکاپ اخیر را در جاهای مختلف نگه دارید: روی هاست، در یک فضای ابری و روی کامپیوتر خودتان. دلیلش ساده است:
- بکاپی که فقط روی همان سرور است، با هک شدن سرور، خرابی دیسک یا بسته شدن حساب هاست از دست میرود.
- اگر سایت یک هفته پیش آلوده شده باشد و هر شب بکاپ تازه روی قبلی نوشته شود، همه بکاپها آلودهاند. چند تاریخ مختلف نگه دارید، از جمله یک نسخه ماهانه قدیمیتر.
- فایل بکاپ را در پوشه عمومی سایت (
public_html) رها نکنید. هر کس نامش را حدس بزند میتواند دانلودش کند، همراه با رمز دیتابیس.
نام فایلها را با تاریخ بگذارید، مثلاً site-1405-08-10-db.sql.gz، تا روز مبادا بدانید هر کدام مال کی است.
بازگردانی بکاپ وردپرس، قدمبهقدم
بازگردانی، دیتابیس فعلی را با محتوای بکاپ جایگزین میکند. پس هر چه بعد از تاریخ بکاپ اضافه شده، از سفارش تا دیدگاه، از بین میرود. پیش از شروع از وضعیت فعلی هم بکاپ بگیرید، حتی اگر سایت خراب است.
- فایلها را برگردانید: فایل فشرده
wp-contentرا در پوشه سایت بارگذاری و از حالت فشرده خارج کنید. اگر هسته وردپرس آسیب دیده، نسخه تازهای از wordpress.org بگذارید و بعدwp-contentرا جایگزین کنید. - دیتابیس را درونریزی کنید: در phpMyAdmin دیتابیس سایت را انتخاب کنید، به زبانه Import بروید، فایل SQL را انتخاب کنید و Go را بزنید. برای بازگردانی تمیز، دیتابیس مقصد بهتر است خالی باشد.
- wp-config.php را با دیتابیس جور کنید: اگر روی هاست تازه دیتابیس یا کاربر تازه ساختهاید، نام دیتابیس، نام کاربر و رمز را در این فایل عوض کنید.
- اگر نشانی سایت عوض شده، نشانی قدیم را در دیتابیس با ابزاری عوض کنید که داده سریالشده را درست تغییر میدهد، مثل دستور
search-replaceدر WP-CLI. جایگزینی ساده متن در فایل SQL تنظیمات بعضی افزونهها را خراب میکند. - سایت را بیازمایید: صفحه اصلی، چند نوشته، تصویرها، ورود به پیشخوان و فرم تماس.
یک نکته مخصوص سایتهای فارسی: اگر بعد از بازگردانی بهجای متن فارسی علامت سؤال دیدید، مجموعه نویسه (Character set) هنگام خروجی گرفتن و درونریزی یکی نبوده است. هر دو را با utf8mb4 انجام دهید.
آزمودن بازگردانی، پیش از روز مبادا
بکاپی که هیچوقت بازگردانی نشده، فقط یک امید است. راهنمای وردپرس توصیه میکند بکاپهای خودکار را گاهی با یک بکاپ دستی بسنجید تا مطمئن شوید روند کار درست است. ولی محکمترین آزمون، بازگرداندن واقعی است، روی یک کپی جدا و نه روی سایت اصلی:
- یک زیردامنه آزمایشی روی هاست، مثلاً
test.example.com، با دیتابیس جدا؛ - یا یک کپی روی کامپیوتر خودتان، با ابزارهایی مثل Local یا XAMPP.
بعد از بازگردانی روی کپی، اینها را ببینید:
- همه صفحهها و تصویرها باز میشوند؛
- تاریخ آخرین نوشته یا سفارش با تاریخ بکاپ جور است؛
- ورود به پیشخوان و فرمها کار میکنند؛
- بازگردانی چقدر طول کشید. همین عدد میگوید روز مبادا سایت چقدر از دسترس بیرون میماند.
در همین سایت، هر تغییری که به دیتابیس سایت اصلی میرسد، اول روی کپی جدایی از دیتابیس آزموده میشود. این کار یک بار ایرادی را پیش از رسیدن به سایت اصلی نشان داد که بدون آن، بخشی از یک بهروزرسانی بیصدا جا میماند. آزمون بکاپ هم همین ارزش را دارد: ایراد را روزی پیدا میکنید که هنوز وقت دارید.
پیشنهاد ما: هر سه ماه یک بار، و هر بار که روش یا محل بکاپ را عوض میکنید، یک بازگردانی آزمایشی انجام دهید.
اشتباههای رایج در بکاپ وردپرس
- بکاپ فقط از دیتابیس، بدون پوشه تصویرها و قالب؛
- نگه داشتن همه بکاپها روی همان هاست؛
- رها کردن فایل بکاپ در پوشه عمومی سایت؛
- افزونهای که ماهها پیش تنظیم شده و بیصدا شکست میخورد، چون کسی ایمیل خطایش را نمیخواند؛
- بهروزرسانی وردپرس و افزونهها بدون بکاپ تازه؛
- نگه داشتن فقط آخرین نسخه، که هر شب روی قبلی نوشته میشود؛
- هیچوقت نیازمودن بازگردانی.
پرسشهای رایج
بهترین افزونه بکاپ وردپرس کدام است؟
یک جواب برای همه نیست. افزونه مناسب شما دیتابیس و فایلها را طبق برنامه میگیرد، بیرون از هاست میفرستد و راه بازگردانیاش را بلدید. UpdraftPlus و BackWPup دو نمونه پرکاربردند. هر کدام را انتخاب کردید، یک بار بازگردانی را با آن بیازمایید.
بکاپ خود هاست کافی نیست؟
بکاپ هاست خوب است، ولی کافی نیست. گرفتن نسخه از هاست زمان میبرد، بکاپ روی زیرساخت همان شرکت میماند و ممکن است فقط چند روز اخیر را نگه دارد. یک نسخه هم خودتان، بیرون از هاست، داشته باشید.
از وردپرس روی لوکال هاست چطور بکاپ بگیریم؟
همان دو بخش: دیتابیس را از phpMyAdmin خروجی بگیرید (در XAMPP معمولاً در نشانی localhost/phpmyadmin) و پوشه wp-content را کپی کنید. ابزار Local هم گزینه Export دارد که کل سایت را در یک فایل zip میگذارد.
چند نسخه بکاپ نگه داریم؟
دستکم سه تا پنج نسخه اخیر، به توصیه راهنمای وردپرس. یک نسخه ماهانه قدیمیتر هم نگه دارید، برای وقتی که ایرادی دیر پیدا میشود.
پشتیبانگیری خودکار منظم و بازیابی آزمایششده، بخشی از خدمت مدیریت و پشتیبانی سایت تیم طراحان آیا است. اگر میخواهید این کار برای سایت شما انجام و پیگیری شود، از صفحه تماس درخواست بدهید.