# التهيئة

يستخدم Chamilo 2.0 متغيرات البيئة وملفات إعدادات Symfony لإعداداته الأساسية. تغطي هذه الصفحة الملفات والمتغيرات الرئيسية للإعدادات.

## متغيرات البيئة (.env)

الملف الرئيسي للإعدادات هو `.env` في دليل Chamilo الرئيسي. يحتوي هذا الملف على إعدادات خاصة بالبيئة لا يجب إدراجها في نظام التحكم بالإصدارات.

يأتي مع Chamilo ملف `.env.dist` افتراضي يحتوي على القيم الافتراضية الموثقة. أنشئ `.env` (مطلوب لبدء التثبيت) لتجاوز القيم لبيئتك.

### المتغيرات الرئيسية

| Variable            | Description                                                                                                                                                     | Example           |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| `APP_ENV`           | بيئة التطبيق، على مستوى Symfony. استخدم `prod` للإنتاج، `dev` للتطوير، 'test' للاختبار.                                                                         | `prod`            |
| `APP_SECRET`        | سلسلة عشوائية تُستخدم لرموز CSRF، توقيع الكوكيز، وعمليات التشفير الأخرى. يولد Chamilo قيمة فريدة لكل تثبيت. لا تعدلها.                                          | `a1b2c3d4e5f6...` |
| `DATABASE_HOST`     | مضيف قاعدة البيانات. الافتراضي localhost                                                                                                                        | `localhost`       |
| `DATABASE_PORT`     | منفذ قاعدة البيانات. الافتراضي 3306 لـ MySQL/MariaDB                                                                                                            | `3306`            |
| `DATABASE_NAME`     | اسم قاعدة البيانات، كما قدمته إلى معالج التثبيت.                                                                                                                | انظر أدناه.       |
| `DATABASE_USER`     | اسم مستخدم قاعدة البيانات، كما قدمته إلى معالج التثبيت.                                                                                                         | انظر أدناه.       |
| `DATABASE_PASSWORD` | كلمة مرور مستخدم قاعدة البيانات، كما قدمتها إلى معالج التثبيت.                                                                                                  | انظر أدناه.       |
| `TRUSTED_PROXIES`   | (اختياري) إذا كنت تستضيف Chamilo خلف خادم وكيل عكسي، يجب تقديم عنوان(ات) IP لخادم الوكيل العكسي هنا حتى يتمكن Chamilo من تفسير الطلبات وتوليد الردود بشكل صحيح. |                   |

الإعدادات الأخرى في .env تُعدل نادراً.

لاحظ أنه، في الإصدارات المستقبلية، ستُجمع إعدادات DATABASE\_\* في متغير واحد `DATABASE_URL`.

يتم عرض إعدادات إرسال البريد الإلكتروني أثناء التثبيت، ولكن يمكن تعديلها لاحقاً في قسم `إعدادات المنصة` في لوحة الإدارة.

## إعدادات Symfony (دليل config/)

توجد إعدادات على مستوى Symfony في دليل `config/`. تتحكم هذه ملفات YAML في سلوك الإطار، تعريفات الخدمات، والإعدادات الخاصة بالحزم.

ليس من الشائع تعديل هذه الملفات، وتغييرها قد يجعل بوابةك غير فعالة، لذا من فضلك لا تحاول تعديلها إذا كنت مضطراً لضمان توافر النظام.

### الملفات الرئيسية للإعدادات

| File                             | Purpose                                                                 |
| -------------------------------- | ----------------------------------------------------------------------- |
| `config/authentication.yaml`     | إعدادات طرق المصادقة.                                                   |
| `config/packages/doctrine.yaml`  | إعدادات قاعدة البيانات و ORM.                                           |
| `config/packages/security.yaml`  | المصادقة، جدران الحماية، التحكم في الوصول، وتسلسلات الأدوار.            |
| `config/packages/cache.yaml`     | إعدادات محول التخزين المؤقت (نظام الملفات، APCu، Redis).                |
| `config/packages/framework.yaml` | إعدادات إطار Symfony العامة (الجلسة، CSRF، الراوتر، تخزين HTTP المؤقت). |
| `config/packages/twig.yaml`      | إعدادات محرك القوالب.                                                   |
| `config/services.yaml`           | تعريفات خدمات التطبيق وحقن التبعيات.                                    |

### التجاوزات الخاصة بالبيئة

يدعم Symfony إعدادات خاصة بكل بيئة. تتجاوز الملفات في `config/packages/prod/` الافتراضيات عند `APP_ENV=prod`، و `config/packages/dev/` تتجاوز عند `APP_ENV=dev`.

على سبيل المثال، يقوم `config/packages/prod/monolog.yaml` عادةً بإعداد تسجيل أقل تفصيلاً من المقابل في التطوير.

لا يحدد Chamilo أي إعدادات في `config/packages/prod/` في البرمجيات نفسها، لذا إذا أردت تخصيص إعداد من `config/packages/*.yaml`، فقط أنشئ نسخة من ملف yaml داخل ذلك الدليل وقم بتغيير الإعدادات هناك.

## صلاحيات الملفات

قمنا في 2.0+ بجهود لضمان أن دليلاً واحداً فقط يحتاج صلاحيات. هذا هو دليل `var/`، ولتجنب المشكلات المعقدة، مجرد تعيين الدليل بأكمله كقابل للكتابة من قبل مستخدم نظام خادم الويب يكفي.

عيّن الصلاحيات بشكل مناسب تحت أنظمة Debian:

```bash
# For systems where the web server runs as www-data
chown -R www-data:www-data var/
chmod -R 775 var/
```

## مهام الإعدادات الشائعة

### التبديل إلى وضع الإنتاج

```bash
# In .env
APP_ENV=prod
APP_DEBUG=0
```

ثم امسح ودفّئ التخزين المؤقت:

```bash
php bin/console cache:clear --env=prod
php bin/console cache:warmup --env=prod
```

### إعداد الوكلاء الموثوقين

إذا كان Chamilo يعمل خلف خادم وكيل عكسي أو موازن حمل، قم بإعداد الوكلاء الموثوقين حتى يعمل كشف HTTPS وحل عنوان IP للعميل بشكل صحيح:

```yaml
# .env
TRUSTED_PROXIES='127.0.0.1,PROXY_IP'
```

### إعداد تخزين الجلسات

افتراضياً، تُخزن الجلسات على نظام الملفات. للنشر على خوادم متعددة، قم بإعداد جلسات مدعومة بـ Redis أو قاعدة بيانات:

```yaml
# config/packages/framework.yaml
framework:
    session:
        handler_id: 'redis://localhost:6379'
```

***

## نصائح

* **لا تقم بتحرير `.env.dist` مباشرة** -- استخدم دائمًا `.env` للتجاوزات الخاصة بك. قد يتم الكتابة فوق ملف `.env.dist` أثناء الترقيات.
* **احتفظ بـ `APP_DEBUG=0` في الإنتاج** -- وضع التصحيح يكشف معلومات حساسة في صفحات الأخطاء.
* **قم بعمل نسخة احتياطية لـ `.env`** بشكل منفصل عن قاعدة الكود لأنه يحتوي على بيانات الاعتماد ويُستثنى من التحكم في الإصدارات.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.chamilo.org/2.x-ar/dlyl-alidarh/admin-guide/installation/configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
