For the complete documentation index, see llms.txt. This page is also available as Markdown.

ضبط الأداء

تساعد إعدادات الأداء على تحسين تشاميلو لتحميل الصفحات بشكل أسرع واستغلال أفضل للموارد، خاصة على المنصات ذات عدد كبير من المستخدمين المتزامنين.

مرجع إضافي: تتضمن تثبيتك لتشاميلو دليل تحسين موسّع. افتح /documentation/optimization.html في المتصفح (مثلاً https://your-chamilo-site/documentation/optimization.html) للاطلاع على توصيات على مستوى الخادم خاصة بإصدارك.

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

تشاميلو 3.0 مبني على Symfony، الذي يستخدم ذاكرة مؤقتة مُجمَّعة للتوجيه وحقن التبعيات والقوالب. إدارة هذه الذاكرة المؤقتة ضرورية للأداء.

مسح الذاكرة المؤقتة

بعد تغييرات الإعداد أو النشر أو الترقيات، امسح ذاكرة Symfony المؤقتة:

# Clear cache for the current environment
php bin/console cache:clear

# For production environments specifically
php bin/console cache:clear --env=prod

في الإنتاج، تأكد دائماً من تعيين APP_ENV=prod في ملف .env.local. بيئة التطوير (APP_ENV=dev) تتضمن عبئاً كبيراً للتصحيح ولا ينبغي استخدامها أبداً في الإنتاج.

تسخين الذاكرة المؤقتة

بعد مسح الذاكرة المؤقتة، سخّنها مسبقاً لتجميع القوالب والإعداد مسبقاً:

php bin/console cache:warmup --env=prod

استراتيجيات التخزين المؤقت

الاستراتيجية
الوصف

OPcache

ذاكرة الرموز التشغيلية المدمجة في PHP. تأكد من تفعيلها في php.ini بذاكرة كافية (opcache.memory_consumption=256). هذا هو التحسين الأكثر تأثيراً على الأداء.

APCu

ذاكرة مؤقتة للمفاتيح والقيم في الذاكرة يستخدمها Symfony لتخزين البيانات الوصفية. ثبّت إضافة APCu لـ PHP واضبطها في إعداد ذاكرة Symfony المؤقتة.

Redis / Memcached

للمنصات عالية الحركة، اضبط خلفية تخزين مؤقت خارجية. عيّن محوّل الذاكرة المؤقتة في config/packages/cache.yaml.

إعدادات OPcache الموصى بها

عندما تُضبط validate_timestamps على 0، يجب مسح OPcache بعد نشر شيفرة جديدة (إعادة تشغيل PHP-FPM أو استدعاء opcache_reset()).

التحميل الكسول

الإعداد
الوصف

تحميل الصور كسولاً

يفعّل السمة loading="lazy" على الصور بحيث تُحمَّل الصور خارج الشاشة فقط عند التمرير إليها. يقلل زمن التحميل الأولي للصفحة.

تحميل JavaScript المؤجَّل

تحميل ملفات JavaScript غير الحرجة بشكل غير متزامن لتجنب حظر عرض الصفحة.

CDN (شبكة توصيل المحتوى)

للمنصات التي تخدم مستخدمين عبر مناطق جغرافية متعددة، يمكن لـ CDN تحسين أزمنة التحميل للأصول الثابتة (CSS وJavaScript والصور) بشكل كبير.

لضبط CDN:

  1. أنشئ توزيع CDN (مثلاً CloudFront أو Cloudflare أو مزوّد آخر) يشير إلى خادم تشاميلو.

  2. اضبط عنوان URL الأساسي للأصول في بيئتك أو إعداد Symfony بحيث تُقدَّم الأصول الثابتة عبر CDN.

  3. عيّن ترويسات تخزين مؤقت مناسبة للملفات الثابتة (انتهاء صلاحية طويل للأصول ذات الإصدارات).

تحسين قاعدة البيانات

الإجراء
الوصف

استخدام تجميع اتصالات قاعدة البيانات

للمنصات عالية التزامن، اضبط تجميع الاتصالات لتقليل عبء إنشاء اتصالات قاعدة البيانات.

تحسين الاستعلامات

يتضمن تشاميلو فهارس قاعدة بيانات للاستعلامات الشائعة. نفّذ ANALYZE TABLE دورياً على MySQL/MariaDB لإبقاء إحصاءات مخطِّط الاستعلامات محدَّثة.

خادم قاعدة بيانات منفصل

للتركيبات الكبيرة، شغّل قاعدة البيانات على خادم مخصص بدلاً من مشاركة الموارد مع خادم الويب.

إعداد خادم الويب

التحسين
الوصف

تفعيل ضغط gzip/brotli

ضغط استجابات HTML وCSS وJavaScript. تدعم معظم خوادم الويب ذلك أصلاً.

التخزين المؤقت للملفات الثابتة

عيّن ترويسات Cache-Control وExpires طويلة للأصول الثابتة.

ضبط PHP-FPM

اضبط pm.max_children وpm.start_servers وpm.max_requests حسب الذاكرة العشوائية المتاحة والتزامن المتوقع.

HTTP/2

فعّل HTTP/2 في خادم الويب للاتصالات المتعددة وضغط الترويسات.

نصائح

  • OPcache هو المكسب الأكبر بمفرده -- تأكد من تفعيله وحجمه المناسب قبل متابعة تحسينات أخرى.

  • لا تشغّل الإنتاج أبداً مع APP_ENV=dev -- شريط التصحيح والمحلّل يضيفان عبئاً كبيراً على كل طلب.

  • راقب قبل الضبط -- استخدم أدوات مثل New Relic أو Blackfire أو محلّل Symfony المدمج (في وضع التطوير) لتحديد الاختناقات الفعلية بدلاً من التخمين.

  • سخّن الذاكرة المؤقتة بعد كل نشر لتجنب أن يصطدم أول مستخدم بطلب بطيء غير مخزَّن مؤقتاً.

آخر تحديث

هل كان هذا مفيدا؟