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

المشكلات الشائعة وحلولها

دليل شامل لأكثر المشكلات شيوعًا وحلولها.


مشكلات التثبيت

صفحة بيضاء فارغة بعد التثبيت

السبب: عادةً ما تكون مشكلة في صلاحيات الملفات.

الحل:

# تحقق من سجل Laravel
tail -50 storage/logs/laravel.log

# إصلاح الصلاحيات
sudo chmod -R 775 storage bootstrap/cache
sudo chown -R www-data:www-data storage bootstrap/cache

أخطاء "Class Not Found"

السبب: تبعيات Composer غير مثبتة أو لم يُنشأ محمّل التلقائي.

الحل:

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

يعرض المثبّت "Already Installed"

السبب: ملف storage/installed.lock موجود.

الحل: إذا أردت إعادة تشغيل المثبّت:

rm storage/installed.lock

ثم زر /install مجددًا.

CSS/JS لا يُحمَّل (صفحة بدون تنسيق)

السبب: رابط التخزين مفقود أو مشكلة في مسار الأصول.

الحل:

php artisan storage:link
php artisan config:clear
php artisan view:clear

تأكد أيضًا من أن APP_URL في .env يطابق نطاقك الفعلي (بما في ذلك https://).


مشكلات قاعدة البيانات

"SQLSTATE[HY000] [2002] Connection Refused"

السبب: MySQL لا يعمل أو المضيف خاطئ.

الحل:

  • تحقق من تشغيل MySQL: sudo systemctl status mysql
  • جرّب 127.0.0.1 بدلاً من localhost في .env
  • تحقق من المنفذ (الافتراضي: 3306)

"SQLSTATE[HY000] [1045] Access Denied"

السبب: بيانات اعتماد قاعدة البيانات خاطئة.

الحل:

  • تحقق من اسم المستخدم/كلمة المرور في .env
  • اختبر الاتصال: mysql -u your_user -p your_database
  • أعد منح الصلاحيات:
GRANT ALL PRIVILEGES ON feedbackpulse.* TO 'your_user'@'localhost';
FLUSH PRIVILEGES;

الرموز التعبيرية تظهر كـ ????

السبب: ترميز قاعدة البيانات هو utf8 بدلاً من utf8mb4.

الحل:

ALTER DATABASE feedbackpulse CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

مشكلات خادم الويب

جميع المسارات تُرجع 404

إصلاح Apache:

sudo a2enmod rewrite
sudo systemctl restart apache2

تأكد من ضبط AllowOverride All في المضيف الافتراضي.

إصلاح Nginx: تأكد من وجود هذا في كتلة الخادم:

location / {
try_files $uri $uri/ /index.php?$query_string;
}

502 Bad Gateway (Nginx)

السبب: PHP-FPM لا يعمل أو مسار Socket خاطئ.

الحل:

sudo systemctl restart php8.4-fpm
# تحقق من مسار Socket
ls /var/run/php/php8.4-fpm.sock

413 Request Entity Too Large

السبب: حد حجم الرفع منخفض جدًا.

الإصلاح (Nginx):

client_max_body_size 20M;

الإصلاح (PHP):

upload_max_filesize = 20M
post_max_size = 25M

مشكلات المصادقة

"CSRF Token Mismatch" (خطأ 419)

السبب: انتهت صلاحية الجلسة أو مشكلة في الكوكيز.

الحل:

  • امسح كوكيز المتصفح وأعد المحاولة
  • تحقق من SESSION_DOMAIN في .env (اضبطه على .yourdomain.com للنطاقات الفرعية)
  • تأكد من ضبط SESSION_SECURE_COOKIE=true فقط عند استخدام HTTPS

تعذّر تسجيل الدخول بعد إعادة تعيين كلمة المرور

السبب: المتصفح احتفظ بذاكرة الجلسة القديمة.

الحل: امسح كوكيز المتصفح أو استخدم نافذة التصفح الخاص.

تسجيل الدخول الاجتماعي يُرجع خطأ

السبب: عدم تطابق عنوان URL لرد الاتصال.

الحل: تأكد من أن عنوان URL لرد الاتصال في وحدة تحكم Google/GitHub يطابق تمامًا:

  • Google: https://yourdomain.com/auth/google/callback
  • GitHub: https://yourdomain.com/auth/github/callback

مشكلات الدفع

راجع مشكلات بوابة الدفع للحصول على تفاصيل استكشاف أخطاء الدفع.


مشكلات البريد الإلكتروني

راجع مشكلات إرسال البريد الإلكتروني للحصول على تفاصيل استكشاف أخطاء البريد الإلكتروني.


مشكلات الأداء

راجع تحسين الأداء للحصول على نصائح التحسين.


مشكلات الذاكرة المؤقتة

عند الشك، امسح جميع الذاكرات المؤقتة:

php artisan optimize:clear

يمسح هذا:

  • ذاكرة الإعداد المؤقتة
  • ذاكرة المسارات المؤقتة
  • ذاكرة العرض المؤقتة
  • ذاكرة التطبيق المؤقتة
  • ذاكرة الفئات المُجمَّعة المؤقتة

وضع التشخيص (مؤقت)

لرؤية رسائل الخطأ التفصيلية:

  1. عدّل .env:
APP_DEBUG=true
LOG_LEVEL=debug
  1. أعِد تكرار الخطأ
  2. تحقق من صفحة الخطأ أو storage/logs/laravel.log
  3. فورًا اضبط APP_DEBUG=false عند الانتهاء!
تحذير

لا تترك أبدًا APP_DEBUG=true في الإنتاج. يكشف عن معلومات حساسة.


الحصول على المساعدة

إذا لم يحل أي مما سبق مشكلتك:

  1. تحقق من storage/logs/laravel.log للحصول على سجل الخطأ الكامل
  2. تحقق من سجل خطأ خادم الويب (/var/log/nginx/error.log أو /var/log/apache2/error.log)
  3. ابحث في تعليقات عنصر CodeCanyon عن مشكلات مماثلة
  4. افتح تذكرة دعم مع:
    • رسالة الخطأ (من السجل)
    • إصدار PHP (php -v)
    • إصدار Laravel
    • تفاصيل الخادم (نظام التشغيل، خادم الويب، إصدار MySQL)
    • خطوات إعادة الإنتاج