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

قدم ۱: لاگ خطا را بخوانید

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

بخش Errors در سی‌پنل برای دیدن لاگ خطاهای سایت
بخش Errors در سی‌پنل: آخرین خط، علت خطای ۵۰۰ را نشان می‌دهد
در لاگ می‌بینید علت برو به
نام htaccess. یا عبارت Invalid command دستور اشتباه در htaccess. قدم ۲
مسیر wp-content/plugins/… همان افزونه قدم ۳
مسیر wp-content/themes/… قالب قدم ۳
Allowed memory size exhausted کمبود حافظه‌ی PHP قدم ۴
syntax error یا Call to undefined function نسخه‌ی PHP ناسازگار یا فایل ناقص قدم ۵
هیچ چیز تازه‌ای نیست خطا در لاگ وردپرس ثبت می‌شود بخش «اگر لاگ خالی بود»

قدم ۲: فایل htaccess.

در File Manager، نمایش فایل‌های مخفی را روشن کنید (روش کار) و فایل htaccess. را به htaccess-old. تغییر نام دهید. اگر سایت باز شد، مشکل از همین فایل بوده. از پیشخوان وردپرس، «تنظیمات ← پیوندهای یکتا» را باز و فقط ذخیره کنید تا نسخه‌ی سالم ساخته شود. اگر افزونه‌ی کش یا امنیتی دارید، تنظیماتش را یک بار ذخیره کنید تا دستورهایش را دوباره بنویسد.

قدم ۳: افزونه یا قالب

اگر به پیشخوان دسترسی ندارید، از File Manager وارد wp-content/plugins شوید و پوشه‌ی افزونه‌ای که در لاگ آمده را تغییر نام دهید (مثلاً یک -off به آخرش اضافه کنید). وردپرس آن را غیرفعال می‌کند.

اگر نمی‌دانید کدام افزونه، کل پوشه‌ی plugins را به plugins-off تغییر نام دهید. سایت باز شد؟ نام را برگردانید و افزونه‌ها را یکی‌یکی از پیشخوان فعال کنید تا مقصر پیدا شود.

صفحه افزونه‌های وردپرس
فعال کردن یکی‌یکی افزونه‌ها برای پیدا کردن مقصر

برای قالب هم همین کار: پوشه‌ی قالب فعال را تغییر نام دهید تا وردپرس به قالب پیش‌فرض برگردد.

قدم ۴: کمبود حافظه‌ی PHP

پیام Allowed memory size of … bytes exhausted یعنی اسکریپت بیش از سقف حافظه خواسته است. راه‌حل و مقدار مناسب در خطای Memory Limit در وردپرس آمده است.

قدم ۵: نسخه‌ی PHP

اگر خطا بعد از تغییر نسخه‌ی PHP یا انتقال هاست شروع شده، نسخه را به حالت قبل برگردانید. روی هاست رایکت نسخه‌های ۵.۴ تا ۸.۴ از MultiPHP Manager قابل انتخاب است.

صفحه MultiPHP Manager در سی‌پنل
MultiPHP Manager: نسخه‌ی PHP دامنه را به نسخه‌ی قبلی برگردانید

اگر خطا بعد از به‌روزرسانی ناقص وردپرس است، فایل‌های هسته آسیب دیده‌اند: پوشه‌های wp-admin و wp-includes را از یک بسته‌ی تازه‌ی وردپرس جایگزین کنید. به wp-content و wp-config.php دست نزنید.

اگر لاگ سی‌پنل خالی بود

ثبت خطا را در خود وردپرس روشن کنید. در wp-config.php:

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

صفحه را دوباره باز کنید و فایل wp-content/debug.log را بخوانید. بعد از رفع مشکل این خطوط را بردارید؛ فایل لاگ از بیرون قابل خواندن است.

خطا فقط گاهی رخ می‌دهد؟

خطای ۵۰۰ که می‌آید و می‌رود معمولاً از سقف منابع است، نه از کد. بخش Resource Usage را ببینید؛ توضیح کامل در خطای ۵۰۸ و محدودیت منابع هست.

اگر هیچ‌کدام جواب نداد

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

سوال‌های رایج

خطای ۵۰۰ اطلاعات سایت را پاک می‌کند؟

نه. نوشته‌ها و تنظیمات در دیتابیس سالم‌اند؛ فقط اجرای سایت متوقف شده است.

خطا فقط در پیشخوان است؛ چرا؟

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

خطا درست بعد از انتقال هاست شروع شد.

وردپرس بعد از انتقال بالا نمی‌آید را ببینید.