خطای 500 Internal Server Error یکی از رایجترین و در عین حال مبهمترین خطاهای وردپرس است. در این وضعیت، سایت یا پیشخوان وردپرس بهدرستی بارگذاری نمیشود، اما برخلاف بعضی خطاها، معمولاً پیام دقیقی درباره منشأ مشکل نمایش داده نمیشود. در وردپرس، این خطا اغلب به مواردی مانند خرابی فایل .htaccess، تداخل افزونهها، ناسازگاری قالب، محدودیت حافظه PHP یا خرابی فایلهای هسته مربوط میشود.
خطای داخلی سرور 500 چه زمانی رخ میدهد؟
این خطا معمولاً در یکی از این وضعیتها دیده میشود:
- هنگام باز کردن صفحه اصلی سایت
- هنگام ورود به پیشخوان وردپرس
- بعد از نصب یا بروزرسانی افزونه
- بعد از بروزرسانی قالب
- بعد از تغییر فایلهای اصلی وردپرس یا فایل .htaccess
- بعد از تغییر نسخه PHP در هاست
در بعضی سایتها این خطا فقط در بخش مدیریت ظاهر میشود و در بعضی دیگر کل سایت را از دسترس خارج میکند. از نگاه مستندات رسمی وردپرس، این خطا یک خطای عمومی سمت سرور است و برای پیدا کردن علت، باید موارد رایج وردپرس بهصورت مرحلهای بررسی شوند.
علت بروز خطای 500 در وردپرس
مهمترین علتهای بروز این خطا عبارتاند از:
1) خرابی یا تنظیم نادرست فایل .htaccess
در سرورهای Apache، فایل .htaccess برای بازنویسی آدرسها، پیوندهای یکتا و برخی تنظیمات سایت استفاده میشود. اگر این فایل خراب شود یا یک قانون نادرست داخل آن قرار بگیرد، خطای 500 ممکن است ظاهر شود. مستندات رسمی وردپرس نیز .htaccess را یکی از بخشهای مهم تنظیمات WordPress روی Apache معرفی میکند و به امکان بازسازی فایل خراب اشاره دارد.
2) تداخل افزونهها
یکی از شایعترین علتها، ناسازگاری یا تداخل افزونهها با هسته وردپرس، نسخه PHP یا افزونههای دیگر است. وردپرس در مستندات خطاهای رایج، غیرفعال کردن همه افزونهها را یکی از اولین روشهای عیبیابی این خطا معرفی میکند.
3) ناسازگاری قالب
گاهی قالب فعال سایت دارای کد ناسازگار، تابع قدیمی یا فایل خراب است و باعث خطای 500 میشود. این حالت بهویژه بعد از بروزرسانی قالب یا افزودن کد سفارشی بیشتر دیده میشود. مستندات وردپرس، قالب و افزونه را از منابع رایج بروز خطاهای عملکردی سایت میداند.
4) کمبود حافظه PHP
اگر حافظه PHP برای اجرای قالب، افزونه یا پردازش صفحه کافی نباشد، سایت ممکن است با خطای 500 یا خطاهای مرگبار مشابه روبهرو شود. مستندات رسمی وردپرس، محدودیت حافظه را از علتهای رایج این دسته از خطاها معرفی میکند.
5) خرابی فایلهای هسته وردپرس
اگر برخی فایلهای هسته وردپرس ناقص آپلود شده باشند، هنگام بروزرسانی آسیب دیده باشند یا بهاشتباه تغییر کرده باشند، این خطا میتواند رخ دهد. این مورد نیز در فهرست خطاهای رایج وردپرس بهعنوان یکی از عوامل اصلی مطرح شده است.
6) تفاوت نوع وبسرور
اگر سایت روی Nginx اجرا میشود، باید توجه داشت که این وبسرور از .htaccess استفاده نمیکند و تنظیمات معادل آن باید در فایلهای پیکربندی خود Nginx انجام شوند. بنابراین بخشی از راهحلهای مبتنی بر .htaccess فقط برای Apache کاربرد دارند.
روش رفع خطای داخلی سرور 500 در وردپرس
مرحله 1: فعال کردن حالت اشکالزدایی وردپرس
ابتدا بهتر است لاگ خطاها را فعال کنید تا دلیل واقعی مشکل مشخص شود. در فایل wp-config.php این تنظیمات را قرار دهید:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);پس از آن، خطاها در فایل زیر ذخیره میشوند:
/wp-content/debug.log
این روش برای شناسایی افزونه، قالب یا فایل مشکلدار بسیار مفید است و با رویکرد عیبیابی وردپرس همخوانی دارد.
مرحله 2: بررسی و بازسازی فایل .htaccess
اگر سایت شما روی Apache است، فایل .htaccess را بررسی کنید.
- از طریق File Manager یا FTP وارد ریشه سایت شوید.
- فایل .htaccess را پیدا کنید.
- نام آن را موقتاً به .htaccess-old تغییر دهید.
- سایت را دوباره تست کنید.
- اگر مشکل رفع شد، یک فایل .htaccess جدید با کد پیشفرض وردپرس بسازید:
# 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سپس در پیشخوان وردپرس، به مسیر تنظیمات > پیوندهای یکتا بروید و بدون تغییر خاص، روی ذخیره تغییرات کلیک کنید تا قوانین بازنویسی دوباره ساخته شوند. خود وردپرس نیز .htaccess را فایل مهم بازنویسی و تنظیمات در Apache معرفی میکند.
مرحله 3: غیرفعال کردن همه افزونهها
اگر سایت بعد از نصب یا بروزرسانی افزونه دچار مشکل شده است، این مرحله ضروری است.
وارد پوشه زیر شوید:
/wp-content/
نام پوشه plugins را موقتاً تغییر دهید:
plugins → plugins-disabled
سایت را بررسی کنید. اگر سایت بالا آمد، یعنی یکی از افزونهها عامل خطاست. در این حالت:
- نام پوشه را به plugins برگردانید
- افزونهها را یکییکی فعال کنید
- بعد از هر بار فعالسازی، سایت را تست کنید تا افزونه مشکلساز مشخص شود
- وردپرس این روش را یکی از اولین گامهای عیبیابی خطاهای رایج معرفی میکند.
مرحله 4: تغییر موقت قالب
اگر با غیرفعال کردن افزونهها مشکل حل نشد، باید قالب را بررسی کنید.
وارد مسیر زیر شوید:
/wp-content/themes/
نام پوشه قالب فعال را تغییر دهید
اگر یک قالب پیشفرض وردپرس روی سایت موجود باشد، وردپرس بهطور خودکار به آن سوئیچ میکند
اگر بعد از این کار خطا رفع شد، مشکل از قالب یا کدهای سفارشی آن است. در این حالت، فایلهایی مانند functions.php و فایلهای تغییر یافته قالب باید بررسی شوند. این روش نیز با رویه عیبیابی توصیهشده وردپرس همراستا است.
مرحله 5: افزایش حافظه PHP
اگر علت خطا کمبود حافظه باشد، میتوانید در wp-config.php این خط را اضافه کنید:
define('WP_MEMORY_LIMIT', '256M');در بعضی هاستها لازم است مقدار memory_limit را در php.ini هم افزایش دهید:
memory_limit = 256M
البته بعضی شرکتهای هاستینگ یک سقف سخت برای حافظه PHP تعریف میکنند و در آن حالت، تغییر فایلهای وردپرس بهتنهایی کافی نیست. مستندات وردپرس و منابع آموزشی فنی هر دو تأیید میکنند که memory limit یکی از عوامل رایج این خطاست.
مرحله 6: بررسی نسخه PHP
اگر خطا بعد از تغییر نسخه PHP آغاز شده است:
- نسخه فعلی PHP را از کنترلپنل هاست بررسی کنید
- سازگاری قالب و افزونهها را با آن نسخه بسنجید
- در صورت نیاز، یک نسخه پایدارتر را تست کنید
- مستندات وردپرس ناسازگاری نسخه PHP را نیز از علتهای متداول خطاهای سایت معرفی میکند.
مرحله 7: جایگزینی فایلهای هسته وردپرس
اگر هنوز مشکل پابرجاست، احتمال خرابی فایلهای هسته وجود دارد.
- آخرین نسخه وردپرس را از منبع رسمی دریافت کنید
- پوشههای wp-admin و wp-includes را جایگزین کنید
- فایل wp-config.php و پوشه wp-content را دستنخورده نگه دارید
- از آنجا که خرابی فایلهای اصلی وردپرس یکی از علل شناختهشده این خطاست، این مرحله میتواند در بسیاری از موارد مؤثر باشد.
نکات مهم و کاربردی
- قبل از هر تغییری، از فایلها و پایگاه داده سایت نسخه پشتیبان تهیه کنید.
- اگر سایت روی Nginx است، راهحلهای مرتبط با .htaccess برای شما کاربرد مستقیم ندارند.
- در بیشتر موارد، خطای 500 با یکی از این چهار عامل ارتباط دارد: .htaccess خراب، افزونه ناسازگار، قالب مشکلدار، یا کمبود حافظه PHP.
خطای 500 Internal Server Error در وردپرس اگرچه مبهم به نظر میرسد، اما معمولاً با یک روند عیبیابی مرحلهای میتوان آن را شناسایی و رفع کرد. شروع کار باید با بررسی لاگها، تست .htaccess، غیرفعال کردن افزونهها، تغییر قالب و بررسی حافظه PHP باشد. این رویکرد، هم سریعتر است و هم احتمال خطای انسانی را کاهش میدهد.
برای مشاهده همه خطاهای پرتکرار وردپرس و دسترسی به سایر مقالات اختصاصی، مقاله مرجع را ببینید: مرجع خطاهای رایج وردپرس
