بهروز نگه داشتن وردپرس مهمترین کار امنیتی سایت است؛ بیشتر نفوذها از افزونهی قدیمی انجام میشود، نه از رمز ضعیف. ولی آپدیت بیبرنامه هم میتواند سایت را پایین بیاورد. قاعده ساده است: قبلش بکاپ، بعد به این ترتیب: افزونهها یکییکی، بعد قالب، بعد هستهی وردپرس؛ و بعد از هر قدم یک نگاه به سایت. آپدیتهای بزرگ را اول روی نسخهی آزمایشی امتحان کنید.
سه نوع آپدیت
| نوع | مثال | خطر خراب شدن | چه کنم |
|---|---|---|---|
| جزئی (امنیتی و رفع باگ) | ۶.۶.۱ به ۶.۶.۲ | خیلی کم | خودکار روشن بماند |
| اصلی | ۶.۶ به ۶.۷ | متوسط | چند روز صبر، بکاپ، بعد آپدیت |
| افزونه و قالب | هر نسخه | بسته به افزونه؛ ووکامرس و صفحهسازها بیشتر | یکییکی، با بکاپ |
قبل از آپدیت
- بکاپ کامل از فایلها و دیتابیس، و مطمئن شوید قابل برگرداندن است. (بکاپ وردپرس)
- نسخهی PHP را ببینید. نسخهی تازهی افزونهها گاهی PHP بالاتر میخواهد. (نسخهی PHP برای وردپرس)
- یادداشت تغییرات آپدیتهای بزرگ را بخوانید؛ مخصوصاً ووکامرس، صفحهساز و قالب.
- فضای خالی هاست: آپدیت به فضای موقت نیاز دارد و روی هاست پر، نیمهکاره میماند.
- زمان: ساعت کمبازدید، و وقتی که خودتان یک ساعت بعدش پای سایت هستید.
- قالب را مستقیم ویرایش کردهاید؟ آپدیت قالب تغییرات شما را پاک میکند، مگر از پوستهی فرزند استفاده کرده باشید.
ترتیب درست
- افزونهها، یکییکی. بعد از هرکدام صفحهی اصلی و یک صفحهی داخلی را ببینید. «انتخاب همه و آپدیت» سریعتر است، ولی اگر چیزی خراب شود نمیدانید کدام بوده.
- قالب.
- هستهی وردپرس.
- اگر وردپرس خواست، «بهروزرسانی پایگاهداده» را بزنید.
- ترجمهها.
- کش سایت را خالی کنید.
برای فروشگاه، بعد از آپدیت یک سفارش آزمایشی تا مرحلهی درگاه ثبت کنید.
کدامها را اول روی نسخهی آزمایشی امتحان کنم؟
- نسخهی اصلی ووکامرس و افزونههای پرداخت.
- صفحهساز و افزونههای وابسته به آن.
- قالب، مخصوصاً قالبهای پر از امکانات.
- نسخهی اصلی وردپرس، اگر سایت افزونههای قدیمی دارد.
- تغییر نسخهی PHP.
آپدیت نیمهکاره ماند
| پیام | علت | راه رفع |
|---|---|---|
| «بهطور موقت برای تعمیرات برنامهریزیشده در دسترس نیست» | آپدیت وسط کار قطع شده و فایل حالت تعمیر مانده | در پوشهی سایت فایل .maintenance را حذف کنید (فایل مخفی است) |
| «بهروزرسانی دیگری هماکنون در جریان است» | قفل آپدیت در دیتابیس مانده | ۱۵ دقیقه صبر کنید؛ یا در جدول options ردیف core_updater.lock را حذف کنید |
| «بارگیری ناموفق بود» یا تایماوت | اتصال به سرورهای وردپرس برقرار نشده | دوباره امتحان کنید؛ یا فایل zip را دستی آپلود کنید |
| «نمیتوان پوشه ساخت» یا خطای دسترسی | فضای پر یا سطح دسترسی اشتباه | فضا و پرمیشن |
| صفحهی سفید یا خطای بحرانی بعد از آپدیت | ناسازگاری | پوشهی همان افزونه را تغییر نام دهید |
آپدیت دستی
وقتی آپدیت خودکار کار نمیکند:
- افزونه: فایل zip نسخهی تازه را بگیرید. در File Manager پوشهی فعلی افزونه را تغییر نام دهید (حذف نکنید)، zip را در wp-content/plugins آپلود و Extract کنید. اگر همهچیز درست بود، پوشهی قدیمی را حذف کنید.
- هسته: zip وردپرس را باز کنید و فقط پوشههای wp-admin و wp-includes و فایلهای ریشه را جایگزین کنید. به wp-content و wp-config.php دست نزنید.
برگشت به نسخهی قبل
- یک افزونه: نسخههای قبلی افزونههای مخزن رسمی در صفحهی همان افزونه (بخش Advanced) قابل دانلود است. نسخهی قبلی را دستی نصب کنید.
- بعد از آپدیت دیتابیس: اگر افزونه ساختار دیتابیس را عوض کرده، برگرداندن فایلها کافی نیست و باید دیتابیس هم از بکاپ برگردد.
- کل سایت: بکاپ قبل از آپدیت را برگردانید.
نسخهی قدیمی را فقط موقت نگه دارید. مشکل را به پشتیبانی افزونه گزارش کنید و با نسخهی بعدی دوباره امتحان کنید.
آپدیت خودکار
| چه چیزی | پیشنهاد |
|---|---|
| نسخههای جزئی هسته | روشن |
| افزونههای کوچک و بیخطر | روشن |
| ووکامرس، صفحهساز، قالب، افزونهی پرداخت | دستی |
| نسخهی اصلی هسته | دستی، یکی دو هفته بعد از انتشار |
افزونههایی که دیگر آپدیت نمیشوند
افزونهای که یک سال است آپدیت نشده یا از مخزن رسمی حذف شده، بدهی امنیتی است. جایگزینش کنید. افزونه و قالب غیرفعال را هم حذف کنید؛ کد غیرفعال هنوز روی هاست است و اگر حفره داشته باشد قابل سوءاستفاده است. قالب و افزونهی نالشده اصلاً آپدیت نمیگیرند. (خطر قالب و افزونهی نالشده)
سوالهای رایج
هر چند وقت آپدیت کنم؟
هفتهای یک بار نگاه کنید. آپدیتهایی که در توضیحشان «امنیتی» آمده را همان روز انجام دهید.
اگر آپدیت نکنم چه میشود؟
حفرههای شناختهشده را رباتها خودکار اسکن میکنند. سایت قدیمی دیر یا زود آلوده میشود. (چکلیست امنیت وردپرس)
آپدیتها از ایران دانلود نمیشوند.
اگر اتصال سرور به مخزن وردپرس کند یا قطع است، چند ساعت بعد دوباره امتحان کنید یا دستی آپدیت کنید. برای افزونههای پولی، لایسنس معتبر لازم است.