خطای 500 (Internal Server Error) یکی از رایج‌ترین و اعصاب‌خوردکن‌ترین خطاها تو وردپرسه. این خطا معمولاً به دلایل مختلفی مثل مشکل تو کد PHP، پلاگین‌های ناسازگار، یا تنظیمات نادرست سرور پیش میاد. بیاید چند تا راه‌حل عملی رو بررسی کنیم.

فعال کردن حالت دیباگ

برای پیدا کردن دلیل خطا، حالت دیباگ وردپرس رو فعال کنید. تو فایل wp-config.php این خطوط رو اضافه کنید یا تغییر بدید:

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

این کد خطاها رو تو فایل wp-content/debug.log ذخیره می‌کنه. یه تجربه از خودم: یه بار خطای 500 به خاطر یه پلاگین قدیمی بود که تو دیباگ لاگ پیداش کردم. همیشه اول لاگ رو چک کنید!

بررسی پلاگین‌ها و تم

اگه خطا بعد از نصب یه پلاگین یا تم جدید پیش اومد:

  1. به پنل ادمین دسترسی ندارید؟ از طریق FTP یا File Manager هاست، پوشه پلاگین‌ها (wp-content/plugins) رو به یه اسم دیگه (مثل plugins-backup) تغییر بدید.

  2. اگه سایت درست شد، پلاگین‌ها رو یکی‌یکی فعال کنید تا مقصر پیدا بشه.

من یه بار به خاطر یه پلاگین کش ناسازگار خطای 500 گرفتم. غیرفعال کردنش مشکل رو حل کرد!

بررسی فایل .htaccess

یه فایل .htaccess خراب می‌تونه خطای 500 بده. فایل wp-content/.htaccess رو از طریق FTP تغییر نام بدید (مثل .htaccess-backup) و یه فایل جدید با این محتوا بسازید:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

بعد تو پنل ادمین، به Settings > Permalinks برید و روی Save Changes کلیک کنید. من یه بار فایل .htaccess رو دستی ویرایش کردم و یه سینتکس اشتباه گذاشتم که باعث خطای 500 شد!

افزایش محدودیت‌های PHP

بعضی وقت‌ها خطای 500 به خاطر کمبود حافظه یا زمان اجرا پیش میاد. تو فایل wp-config.php:

define('WP_MEMORY_LIMIT', '256M');

یا تو فایل php.ini:

memory_limit = 256M
max_execution_time = 60

من تو یه سایت پرترافیک داشتم خطای 500 می‌گرفتم و افزایش memory_limit مشکل رو حل کرد.