تخطَّ إلى المحتوى

١١ يوليو ٢٠٢٦

حل خطأ 500 Internal Server Error بالعربي

شارك المقال:

أنت زائر تتصفح، أو صاحب موقع صحيت الصبح على تنبيهات — وأمامك:

500 Internal Server Error
The server encountered an internal error and was unable to
complete your request.

أغمض رسالة في الويب: لا تفاصيل، لا سبب، لا اتجاه. لكن هذا مقصود — والسبب الحقيقي مكتوب في مكان آخر تملكه أنت.

أولًا: افهم موقعك من الخطأ

أنتماذا تستطيع؟
زائرلا شيء بيدك — العطل عند الموقع؛ أعد المحاولة لاحقًا
صاحب الموقع/المطوركل شيء بيدك — والبداية دائمًا من السجلات

عائلة 5xx كلها أعطال خادم: 500 عطل عام، 502/504 مشاكل بوابة ومهلات، 503 صيانة أو حمل زائد.

القاعدة الذهبية: السجلات أولًا، لا التخمين

صفحة الـ 500 تخفي السبب عمدًا (حماية أمنية) — لكن الخادم كتبه كاملًا بالسجل لحظة الانهيار:

# خوادم Nginx / Apache على لينكس
tail -50 /var/log/nginx/error.log
tail -50 /var/log/apache2/error.log

# تطبيقات Node/Python المستضافة سحابيًا
# (Vercel / Railway / Render…) → تبويب Logs في لوحة التحكم

# استضافة مشتركة (cPanel) → أيقونة Errors أو ملف error_log بمجلد الموقع

سطر الخطأ سيسمّي الملف والسبب حرفيًا — من هنا يبدأ كل حل حقيقي.

الأسباب الخمسة الأشهر وعلاجها

1) Exception غير معالج في الكود (المطورون)

استعلام فشل، قيمة null فاجأت الكود، مكتبة رمت خطأ — أي استثناء يصعد بلا معالجة يصبح 500. السجل يعطيك الـ stack trace كاملًا؛ عالج الحالة وأضف معالجة أخطاء ترد بحالة مناسبة ورسالة آمنة.

2) متغير بيئة ناقص بعد النشر

يعمل محليًا وينهار في الإنتاج؟ الفرق الأول دائمًا: .env — مفتاح قاعدة البيانات أو API غير مضبوط في بيئة الاستضافة. راجع إعدادات المتغيرات في لوحة منصتك وقارنها بقائمة مشروعك.

3) قاعدة البيانات لا تستجيب

بيانات اتصال خاطئة، خادم قاعدة متوقف، أو حد اتصالات ممتلئ. علامة مميزة بالسجل: Connection refused أو Access denied — والثانية دليلنا الكامل فيها: حل خطأ Access denied في MySQL.

4) ووردبريس: الإضافة/الثيم/htaccess (أصحاب المواقع)

ثالوث الـ 500 في ووردبريس بعد أي تحديث:

  • الإضافات: أعد تسمية مجلد wp-content/plugins مؤقتًا — رجع الموقع؟ أعد الاسم وعطّل الإضافات واحدة واحدة حتى تجد الجانية.
  • .htaccess تالف: أعد تسميته، وادخل الإعدادات → روابط دائمة → حفظ ليتولد نظيف.
  • حد الذاكرة: ارفع memory_limit من استضافتك أو wp-config.php.

5) صلاحيات ملفات خاطئة على الخادم

رفعت ملفات بـ root أو عبثت أداة بالصلاحيات؟ المجلدات 755 والملفات 644 — وقصة الصلاحيات كاملة في حل Permission denied في لينكس.

للمطور: لا تدع 500 يصل المستخدم أعمى

// نمط Express — معالج أخطاء يسجل التفاصيل ويرد بأمان
app.use((err, req, res, next) => {
  console.error(err);                          // التفاصيل للسجل
  res.status(500).json({ error: "حدث خطأ — جرّب لاحقًا" }); // العموم بلا أسرار
});

والواجهة تتحقق من res.ok قبل قراءة الرد — وإلا انفجر عندك خطأ مضلل ثانٍ فوق الأول: Unexpected token in JSON.

قائمة تحقّق سريعة

  • افتح الـ error log قبل أي تخمين — السبب مكتوب فيه حرفيًا.
  • يعمل محليًا لا إنتاجًا؟ → متغيرات البيئة أولًا.
  • بعد تحديث ووردبريس؟ → الإضافات ثم .htaccess ثم الذاكرة.
  • متقطع مع الضغط؟ → ذاكرة/اتصالات قاعدة البيانات.
  • كمطور: معالج أخطاء يسجل بالتفصيل ويرد بالعموم.

الخلاصة

خطأ 500 «صندوق أسود» للزائر فقط — أما لصاحبه فمفتوح بالكامل من السجلات. اقرأ الـ log، سمِّ العطل، وعالج مصدره من القائمة أعلاه — ولا تشخّص من شكل الصفحة أبدًا.

افهم بروتوكول الويب من جذوره في مسار الشبكات وHTTP بالعربي ومسار Node.js، وأكمل سلسلة أخطاء الخوادم مع حل خطأ CORS وحل EADDRINUSE.

📚 مصادر رسمية للتعمّق: توثيق HTTP والشبكات على MDN

الأسئلة الشائعة

هل خطأ 500 من جهازي أنا أم من الموقع؟

من الموقع (الخادم) وليس منك — عائلة أخطاء 5xx كلها أعطال جهة الخادم، بعكس 4xx (مثل 404) المرتبطة بالطلب نفسه. كزائر لا تملك إلا إعادة المحاولة لاحقًا؛ وكصاحب موقع، السجلات عندك هي مسرح الجريمة.

لماذا لا تعرض صفحة الخطأ السبب الحقيقي؟

حماية مقصودة: تفاصيل العطل (مسارات الملفات، استعلامات SQL، أسطر الكود) كنز للمهاجمين، فتُخفى عن الزوار وتُكتب في السجلات فقط. لذلك القاعدة الذهبية: لا تشخص 500 من المتصفح أبدًا — افتح الـ error log.

الخطأ يظهر أحيانًا ويختفي أحيانًا — ما معناه؟

عطل متقطع مرتبط بالحمل غالبًا: نفاد ذاكرة عند الذروة، انتهاء مهلة اتصال بقاعدة البيانات، أو حد موارد على استضافة مشتركة. راقب توقيتات الحدوث في السجلات وقارنها بأوقات الضغط — النمط سيرشدك.

اقرأ أيضًا

تصفّح كل المقالات في المدوّنة، أو ابدأ التعلّم من المسارات و خرائط الطريق.