إنتقل إلى المحتوى الرئيسي

أخطاء 500 والتشخيص

كيفية تشخيص وإصلاح أخطاء 500 Internal Server Error.


الخطوة 1: مراجعة السجل

أهم خطوة على الإطلاق. يسجّل Laravel جميع الأخطاء في:

tail -100 storage/logs/laravel.log

سيعرض لك هذا رسالة الخطأ الدقيقة والملف ورقم السطر.


الخطوة 2: تفعيل وضع التشخيص (مؤقتًا!)

APP_DEBUG=true

أعد تحميل الصفحة -- ستظهر لك صفحة خطأ تفصيلية تحتوي على:

  • رسالة الخطأ
  • Stack trace
  • تفاصيل الطلب
  • معلومات البيئة
تحذير

اضبط APP_DEBUG=false فور الانتهاء من التشخيص!


أخطاء 500 الشائعة

"The stream or file could not be opened"

السبب: مشكلة في صلاحيات التخزين.

sudo chmod -R 775 storage bootstrap/cache
sudo chown -R www-data:www-data storage bootstrap/cache

"No application encryption key has been specified"

السبب: مفتاح APP_KEY مفقود أو غير صالح.

php artisan key:generate

"SQLSTATE[HY000] Connection refused"

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

تحقق من إعدادات قاعدة البيانات في .env وتأكد من تشغيل MySQL.

"Class 'X' not found"

السبب: تبعيات Composer مفقودة.

composer install --no-dev --optimize-autoloader
php artisan config:clear

"View [x] not found"

السبب: ملف عرض مفقود أو تالف.

php artisan view:clear

إذا كان الملف مفقودًا فعلاً، أعد رفعه من الحزمة الأصلية.

"Maximum execution time exceeded"

السبب: عملية طويلة (نسخ احتياطي، ترحيل، تحليل بالذكاء الاصطناعي).

زِد مهلة PHP:

max_execution_time = 300

جمع معلومات التشخيص للدعم

عند الإبلاغ عن خطأ، أرفق:

php -v                          # إصدار PHP
php artisan --version # إصدار Laravel
mysql --version # إصدار MySQL
cat .env | grep -E "^(APP_|DB_|MAIL_|QUEUE_)" # الإعداد (بدون كلمات المرور!)
tail -50 storage/logs/laravel.log # الأخطاء الأخيرة

الخطوات التالية