# الترقية

ملاحظة: في هذه الصفحة، نستخدم 2.0.0 كرقم إصدار صارم و2.x لتحديد جميع الإصدارات التي تبدأ بالرقم 2 (2.0.0، 2.0.1، 2.1.0، إلخ).

يتم وصف عملية الترقية من 1.11.x إلى 2.x في ملف `public/documentation/installation_guide.html` الخاص بك، داخل كود Chamilo. المعلومات هنا متكررة إلى حد كبير. يمكنك رؤيتها عبر الإنترنت على `https://campus.chamilo.net/documentation/installation_guide.html`. على الرغم من إجراء اختبارات واسعة على هجرات مشابهة، إلا أن بعض إعدادات 1.11.x لم تكن مدعومة بعد في 2.0.0، لذا نوصي بالانتظار حتى الإصدار 2.1 قبل ترقية نظام 1.11.x، أو الاستعانة بمرافقة مهنية من [مزودي Chamilo الرسميين](https://chamilo.org/providers) في هذه العملية.

## الترقية من 1.11.x إلى 2.x

الترقية من Chamilo 1.11.x إلى 2.x هي **هجرة رئيسية**، وليست تحديثًا بسيطًا. تم إعادة بناء Chamilo 2.0 على إطار Symfony مع هيكل قاعدة بيانات معاد هيكلتها، وAPI جديد، وتنظيم ملفات مختلف. خطط لهذه الهجرة بعناية وجربها في بيئة اختبار قبل نشرها في الإنتاج.

### قبل البدء

1. **اقرأ ملاحظات الإصدار** لـ Chamilo 2.x لفهم ما تغير، وما هو الجديد، وما هي الميزات من 1.11.x التي قد لا تكون متاحة بعد.
2. **قم بعمل نسخ احتياطي لكل شيء**:
   * تصدير كامل لقاعدة البيانات (`mysqldump` أو ما يعادله).
   * جميع الملفات في دليل تثبيت Chamilo 1.11.x، خاصة `app/upload/`، `app/courses/`، و`main/`.
   * ملف `configuration.php` الخاص بك.
3. **اختبر على خادم تجريبي أولاً.** لا تقم أبدًا بتشغيل الهجرة مباشرة على خادم الإنتاج.
4. **تحقق من متطلبات الخادم.** لدى Chamilo 2.x متطلبات مختلفة عن 1.11.x (خاصة PHP 8.2+). انظر [متطلبات الخادم](/2.x-ar/dlyl-alidarh/admin-guide/installation/server-requirements.md).

### ما قد يتطلب تدخلاً يدويًا

| المنطقة                                  | الملاحظات                                                                                                                                                               |
| ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **الإضافات المخصصة**                     | الإضافات في 1.11.x غير متوافقة مع 2.x. يجب إعادة كتابتها أو استبدالها، وقد تم ذلك جزئيًا في 2.0 ويجب أن يكتمل بحلول 2.1 للإضافات الرسمية.                               |
| **السمات المخصصة**                       | سمات 1.11.x لا تعمل في 2.x. أعد إنشاء علامتك التجارية باستخدام نظام السمات في 2.x.                                                                                      |
| **التعديلات المخصصة على قاعدة البيانات** | أي تعديلات مباشرة على قاعدة البيانات خارج Chamilo قد لا تُهاجر.                                                                                                         |
| **حزم SCORM**                            | يجب أن تهاجر محتويات SCORM، لكن اختبر الحزم بشكل فردي للتحقق من التشغيل.                                                                                                |
| **التكاملات الخارجية**                   | أي تكاملات تستخدم API أو خدمات الويب في 1.11.x تحتاج إلى التحديث لاستخدام API الـREST فقط في 2.x باستخدام [API Platform](https://github.com/api-platform/api-platform). |

## تحديث Chamilo 2.0.x

التحديثات الثانوية داخل فرع 2.0 أكثر بساطة.

### عملية التحديث

#### باستخدام حزمة

1. **قم بعمل نسخة احتياطية** لقاعدة البيانات والملفات.
2. **حمّل أحدث إصدار 2.0.x** من [chamilo.org](https://chamilo.org/download):
3. **فك الضغط محليًا**

على سبيل المثال (قم بتكييفها مع الإصدار المحمل)

```bash
unzip chamilo-2.0.1.zip
```

4. **انسخ الملفات فوق تثبيت Chamilo الحالي**

   ```bash
   cp -r chamilo/* [your-chamilo-installation-path]/
   cp -r chamilo/.* [your-chamilo-installation-path]/
   ```
5. **شغّل هجرات قاعدة البيانات:**

   ```bash
   php bin/console doctrine:migrations:migrate --no-interaction
   ```
6. **امسح الذاكرة المؤقتة:**

   ```bash
   php bin/console cache:clear --env=prod
   php bin/console cache:warmup --env=prod
   ```
7. **غيّر الأذونات**

قم بتكييفها مع مستخدم خادم الويب:

```bash
sudo chown -R www-data: [your-chamilo-installation-path]/var
```

8. **تحقق** من تحميل المنصة بشكل صحيح وفحص الوظائف الرئيسية عينيًا.

#### باستخدام Git

إذا قمت بتثبيت Chamilo باستخدام Git، يمكنك اتباع هذه التعليمات بدلاً من ذلك.

1. **قم بعمل نسخة احتياطية** لقاعدة البيانات والملفات.
2. **سحب أحدث كود** (أو حمّل الإصدار الجديد):

   ```bash
   git pull origin 2.0
   ```
3. **حدّث تبعيات PHP:**

   ```bash
   composer install --no-dev --optimize-autoloader
   ```
4. **حدّث تبعيات JavaScript وأعد بناء الأصول:**

   ```bash
   yarn install && yarn build
   ```
5. **شغّل هجرات قاعدة البيانات:**

   ```bash
   php bin/console doctrine:migrations:migrate --no-interaction
   ```
6. **امسح الذاكرة المؤقتة:**

   ```bash
   php bin/console cache:clear --env=prod
   php bin/console cache:warmup --env=prod
   ```
7. **غيّر الأذونات**

قم بتكييفها مع مستخدم خادم الويب:

```bash
sudo chown -R www-data: [your-chamilo-installation-path]/var
```

8. **تحقق** من تحميل المنصة بشكل صحيح وفحص الوظائف الرئيسية عينيًا.

### أتمتة التحديثات

بالنسبة للمنظمات التي تدير عدة نسخ من Chamilo، فكّر في كتابة سكريبت لعملية التحديث:

```bash
#!/bin/bash
set -e

# Pull code
git pull origin 2.0

# Dependencies
composer install --no-dev --optimize-autoloader
yarn install && yarn build

# Database
php bin/console doctrine:migrations:migrate --no-interaction

# Cache
php bin/console cache:clear --env=prod
php bin/console cache:warmup --env=prod

echo "Update complete."
```

***

## نصائح

* **قم دائمًا بعمل نسخة احتياطية قبل الترقية.** عمليات نقل قاعدة البيانات غير قابلة للعكس من خلال واجهة Chamilo.
* **اختبر على بيئة تجريبية أولاً** -- خاصة لنقل البيانات من 1.11.x إلى 2.0، والتي تشمل تحويلًا كبيرًا للبيانات.
* **جدول الترقيات خلال نوافذ الصيانة** عندما لا يكون المستخدمون يستخدمون المنصة بنشاط.
* **اشترك في إصدارات GitHub** على [Github](https://github.com/chamilo/chamilo-lms/releases) باستخدام أيقونة الجرس لتلقي إشعارات بالإصدارات الجديدة وتصحيحات الأمان.
* **التحديثات عبر الويب** غير متوفرة بعد في Chamilo 2.0، لكن هذا مشروع مستمر نأمل في إصداره قريبًا.


---

# 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/upgrading.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.
