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

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

چرا به‌روزرسانی مهم است؟#

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

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

روال امن، به ترتیب#

  1. پشتیبان کامل بگیرید، شامل فایل‌ها و دیتابیس، و آن را جایی غیر از همان هاست نگه دارید.
  2. یادداشت‌ها را بخوانید: در صفحه‌ی هر افزونه تغییرات نسخه‌ی جدید را بخوانید، به‌خصوص عبارت‌هایی مثل «تغییر ناسازگار».
  3. نسخه‌ی آزمایشی را به‌روز کنید اگر دارید؛ در غیر این صورت زمان کم‌بازدید سایت را انتخاب کنید.
  4. هر بار یک مورد: اول هسته، بعد افزونه‌ها یکی‌یکی و بعد قالب.
  5. بعد از هر مورد سایت را بررسی کنید با فهرست زیر.
  6. تغییرات را یادداشت کنید: چه چیزی به چه زمانی به‌روز شد.

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

بررسی بعد از به‌روزرسانی#

بعد از هر مرحله، چند چیز را ببینید:

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

این فهرست را یک بار بنویسید و هر بار همان را اجرا کنید؛ چند دقیقه بیشتر نمی‌شود.

به‌روزرسانی با خط فرمان#

اگر WP-CLI روی هاست دارید، می‌توانید هم پشتیبان بگیرید و هم به‌روزرسانی را گام‌به‌گام انجام دهید:

Bash
wp db export before-update.sql
wp core update
wp plugin list --update=available
wp plugin update akismet
wp theme list --update=available

دستور wp plugin update --all همه را با هم به‌روز می‌کند؛ روی سایت مهم آن را نزنید، مگر نسخه‌ی آزمایشی باشد. خروجی wp db export فقط دیتابیس است؛ فایل‌ها هم باید پشتیبان‌گیری شوند.

به‌روزرسانی خودکار#

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

  • افزونه‌های ساده و پرکاربرد با سازنده‌ی معتبر: می‌شود خودکار کرد.
  • افزونه‌های حساس مثل پرداخت و فروشگاه: دستی و با پشتیبان.
  • قالب سفارشی: دستی.

اگر می‌خواهید افزونه‌ی مشخصی هرگز خودکار به‌روز نشود، با کد این کار را می‌کنید. این کد را در یک افزونه‌ی کوچک بگذارید:

PHP
add_filter( 'auto_update_plugin', function ( $update, $item ) {
	if ( isset( $item->slug ) && 'my-sensitive-plugin' === $item->slug ) {
		return false;
	}
	return $update;
}, 10, 2 );

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

وقتی چیزی خراب شد#

سایت در حالت تعمیر گیر کرده#

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

صفحه‌ی سفید یا خطا بعد از به‌روزرسانی افزونه#

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

برگشت کامل#

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

قاعده‌های نگهداری منظم#

  • ماهی یک بار، یا بیشتر برای سایت‌های پربازدید، همه‌چیز را بررسی و به‌روز کنید.
  • افزونه‌ها و قالب‌هایی را که استفاده نمی‌کنید حذف کنید؛ به‌روزنشدنشان هم خطر است.
  • افزونه‌ای که مدت‌ها به‌روز نشده را جایگزین کنید.
  • نسخه‌ی PHP هاست را هم به‌روز نگه دارید، ولی ابتدا سازگاری را روی نسخه‌ی آزمایشی امتحان کنید.
  • اگر هاست را عوض می‌کنید، انتقال وردپرس به هاست جدید را ببینید.

یک نمونه‌ی برنامه‌ی هفتگی#

اگر نمی‌دانید از کجا شروع کنید، این برنامه‌ی ساده برای یک سایت کوچک کافی است:

زمانکار
هر هفتهنگاه‌کردن به فهرست به‌روزرسانی‌ها و به‌روزرسانی موردهای امنیتی
هر ماهبررسی کامل سایت، حذف افزونه‌های بلااستفاده و آزمایش بازگردانی پشتیبان
هر چند ماهبازبینی افزونه‌های رهاشده و نسخه‌ی PHP

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

خلاصه#

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