تشخيص خطأ PHP 500
خطأ 500 لا يخبرك بشيء وحده. اقرأ السجل أولًا — وكونه ثابتًا أو متقطّعًا يشير إلى سببين مختلفين.
يعيد موقعك 500 Internal Server Error. ينطبق على الاستضافة المشتركة والموزِّعة والمميّزة.
خطأ 500 عام عمدًا — فالتفصيل في السجل لا في الصفحة.
ابدأ بالسجل
فلا شيء آخر هنا يستحق التجربة أولًا:
tail -n 50 ~/public_html/error_logأو افتح error_log في File Manager مع إظهار الملفات المخفية — راجع
العثور على سجل الأخطاء.
والمدخل يسمّي الملف والسطر. وذلك هو التشخيص كله عادةً.
فإن كان الملف فارغًا أو مفقودًا، ففعّل التسجيل — راجع تفعيل تسجيل الأخطاء في PHP.
ثابت أم متقطّع
النمط يضيّق الأمر كثيرًا:
| النمط | عادةً |
|---|---|
| مع كل طلب، في كل مرة | عطل في الكود أو الإعدادات |
| أحيانًا، تحت الحمل | حدّ موارد — ذاكرة، أو عمليات دخول |
أخطاء 500 الثابتة
خطأ PHP فادح. والسجل يسمّيه. وعادةً إضافة أو قالب يستدعي شيئًا غير موجود بعد تحديث، أو خطأ نحوي في ملف حرّرته للتو.
ملف .htaccess معطّل. أعد تسميته إلى .htaccess.bak وأعد التحميل. فإن عاد
الموقع، فالملف هو السبب. وتوجيه واحد مكتوب خطأً يفعل هذا — راجع
فرض HTTPS لمثال كان موثّقًا هنا خطأً.
صلاحيات خاطئة. فالملفات القابلة للكتابة من المجموعة أو من الجميع يرفضها
suEXEC. اضبط المجلدات على 755 والملفات على 644 — راجع
صلاحيات الملفات والمجلدات.
إصدار PHP غير مدعوم. تطبيق يتطلّب إصدارًا أحدث من المختار. راجع تغيير إصدار PHP.
أخطاء 500 المتقطّعة
وهي عادةً حدّ موارد يُبلَغ تحت الحمل.
الذاكرة. ارفع memory_limit في Select PHP Version ← Options — راجع
فهم حدود ذاكرة PHP.
فإن كان الموقع يحتاج أكثر بكثير من الافتراضي، فثمة خطب: حقّق بدل الرفع مرارًا.
عمليات الدخول. فالطلبات المقتولة عند الحد تنتج خطأ 503، لكن طلبًا مقدَّمًا جزئيًا قد يظهر خطأ 500. راجع cPanel ← Resource Usage — راجع معالجة خطأ 503 Resource Limit Reached.
ووردبريس تحديدًا
- أعد تسمية
wp-content/pluginsإلىplugins-offعبر SFTP. فإن عاد الموقع، فإضافة هي المسؤولة — أعد الاسم وعطّلها واحدة تلو أخرى. - بدّل إلى قالب افتراضي.
- فعّل
WP_DEBUG_LOGوراجعwp-content/debug.log— راجع تفعيل WP_DEBUG.