ما هو خطأ 500؟

خطأ 500 الداخلي في السيرفر يعني أن شيئًا ما تعطّل على السيرفر، لكن السيرفر لا يستطيع تحديد ما هو بدقة. إنها رسالة عامة تقول «حدث عطل ما»، وتحتاج إلى بحث.

الخطوة الأولى: راجع سجلات الأخطاء داخل EGPNL من السجلات ثم سجلات الأخطاء. رسالة الخطأ نفسها ستدلّك على السبب بالضبط.

الأسباب الشائعة وحلولها

1. أخطاء في صياغة PHP

السبب

فاصلة منقوطة ناقصة، أو قوس غير مغلق، أو خطأ إملائي في كود PHP.

الحل

راجع سجلات الأخطاء لمعرفة الملف ورقم السطر. الأخطاء الشائعة: ; ناقصة، أو { غير مغلق، أو $ داخل نص.

2. عدم توافق إصدار PHP

السبب

الكود يستخدم خصائص غير متاحة في إصدار PHP الحالي، أو دوالّ متوقفة.

الحل

تحقق من إصدار PHP المطلوب. وداخل EGPNL، افتح PHP ثم إصدار PHP، وبدّل إلى إصدار متوافق.

3. مشكلات صلاحيات الملفات

السبب

ملفات PHP لها صلاحيات خاطئة (مشددة أكثر من اللازم، أو 777).

الحل

اضبط المجلدات على 755 والملفات على 644. ولا تستخدم 777 أبدًا.

# Fix permissions via SSH
find /path/to/site -type d -exec chmod 755 {} \;
find /path/to/site -type f -exec chmod 644 {} \;

4. إضافات PHP الناقصة

السبب

التطبيق يحتاج إلى إضافة PHP غير مفعّلة.

الحل

داخل EGPNL، افتح PHP ثم إضافات PHP، وفعّل الإضافة المطلوبة (مثل mysqli أو gd أو curl).

5. تجاوز حد الذاكرة

السبب

سكربت PHP يستهلك ذاكرة أكثر من المسموح به.

الحل

ارفع حد الذاكرة داخل EGPNL من PHP ثم إعدادات PHP، أو أضف إلى الكود:

// In PHP file
ini_set('memory_limit', '256M');

// Or in php.ini
memory_limit = 256M

6. ملف .htaccess تالف (Nginx)

السبب

بعض التطبيقات تُنشئ ملفات .htaccess، لكن EGPHP يعمل على Nginx الذي لا يدعمها.

الحل

قواعد .htaccess يجب تحويلها إلى صيغة Nginx. راجع قسم Nginx داخل EGPNL لخيارات الإعداد.

7. فشل الاتصال بقاعدة البيانات

السبب

بيانات دخول قاعدة البيانات خاطئة، أو قاعدة البيانات غير موجودة.

الحل

تحقق من بيانات قاعدة البيانات في ملف الإعداد (wp-config.php في حالة WordPress). وتأكد أن قاعدة البيانات موجودة داخل EGPNL.

8. تعارض إضافة أو قالب (WordPress)

السبب

إضافة أو قالب به خلل، أو يتعارض مع غيره.

الحل

غيّر اسم مجلد الإضافات إلى plugins_old من مدير الملفات. فإذا فتح الموقع، أعد الاسم كما كان ثم فعّل الإضافات واحدة تلو الأخرى حتى تعرف المتسببة.

حلول خاصة بـ WordPress

فعّل وضع التنقيح في WordPress

عدّل wp-config.php ثم أضف أو غيّر:

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

ثم راجع wp-content/debug.log بحثًا عن الأخطاء.

ارفع حد ذاكرة WordPress

// Add to wp-config.php
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

استبدل ملفات النواة التالفة

  1. نزّل نسخة جديدة من WordPress من wordpress.org
  2. احذف مجلدَي wp-admin وwp-includes (وليس wp-content)
  3. ارفع نسخة جديدة من wp-admin وwp-includes
  4. لا تستبدل wp-config.php إلا إذا كان تالفًا
خذ نسخة احتياطية أولًا! خذ دائمًا نسخة احتياطية من موقعك قبل تعديل ملفات النواة.

قراءة سجلات الأخطاء

سجلات الأخطاء هي خير معين لك في تشخيص أخطاء 500:

  1. افتح EGPNL ثم السجلات
  2. اختر سجلات الأخطاء
  3. ابحث عن أحدث الأسطر (الأحدث في الأسفل)
  4. سجّل مسار الملف ورقم السطر

رسائل السجل الشائعة

  • PHP Parse error — خطأ في صياغة ملف PHP
  • PHP Fatal error — خطأ حرج أوقف التنفيذ
  • Allowed memory size exhausted — بلغ استهلاك الذاكرة حدّه
  • Call to undefined function — دالة أو إضافة ناقصة

ما زال خطأ 500 يظهر؟

  1. انسخ نص الخطأ من السجلات بالضبط
  2. حدّد متى بدأ الخطأ (بعد تحديث؟ بعد إضافة جديدة؟)
  3. جرّب الاستعادة من نسخة احتياطية إن وُجدت
  4. تواصل مع الدعم مع تفاصيل الخطأ