Chamilo عبارة عن منصة للتعلم الإلكتروني، تسمى أيضًا "LMS"، تم نشرها بموجب ترخيص GNU/GPLv3+. لقد تم استخدامه من قبل أكثر من 30 مليون شخص حول العالم منذ إنشائه في عام 2010. وهذه نسخة تطويرية. بالنسبة للفرع الثابت الحالي، يرجى تحديد الفرع 1.11.x في علامة التبويب "الرمز".
Chamilo 2.0 لا يزال قيد التطوير. إجراء التثبيت أدناه هو للإشارة فقط. للحصول على Chamilo مستقر، يرجى تثبيت Chamilo 1.11.x. راجع README.md الخاص بالفرع 1.11.x للحصول على التفاصيل.
نحن نفترض أن لديك بالفعل:
الملحن 2.x - https://getcomposer.org/download/
غزل +4.x - https://yarnpkg.com/getting-started/install
العقدة >= الإصدار 18+ (lts) - https://github.com/nodesource/distributions/blob/master/README.md
تكوين مضيف افتراضي في مجال، وليس في مجلد فرعي داخل المجال.
خادم LAMP/WAMP يعمل مع PHP 8.1+
ستحتاج إلى PHP8+ وNodeJS v18+ لتشغيل Chamilo 2. على Ubuntu 22.04 الجديد، يمكنك إعداد خادمك عن طريق إصدار أمر مناسب مثل ما يلي باستخدام Sudo (أو كجذر، ولكن لا يوصى به لأسباب أمنية):
sudo apt update sudo apt -y upgrade sudo apt -y install ca-certificates curl gnupg software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install apache2 libapache2-mod-php8.1 mariadb-client mariadb-server php-pear php8.1-{dev,gd,curl,intl,mysql,mbstring,zip,xml,cli,apcu,bcmath,soap} git unzip
إذا كان لديك Nodejs مثبتًا بالفعل، فتحقق من الإصدار باستخدام node -v
وإلا، فقم بتثبيت العقدة 18 أو أعلى:
باتباع التعليمات هنا: https://deb.nodesource.com/node_20.x/. تستخدم الأسطر التالية نسخة ثابتة من تلك التعليمات، لذلك ربما لا تكون مستدامة للغاية مع مرور الوقت
cd ~ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg NODE_MAJOR=20 echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list apt update && apt -y install nodejs
هناك خيار آخر لتثبيت Nodejs وهو استخدام NVM (Node Version Manager). يمكنك تثبيته باتباع التعليمات هنا. وبعد ذلك، يمكنك تثبيت إصدار العقدة المطلوبة. ويفضل إصدار LTS.
sudo nvm install --lts sudo nvm use --lts
بعد تثبيت NodeJS، يجب عليك تمكين corepack ثم متابعة المتطلبات
sudo corepack enable cd ~ # follow the instructions at https://getcomposer.org/download/ sudo mv composer.phar /usr/local/bin/composer # optionally, you might want this: sudo apt install libapache2-mod-xsendfile sudo a2enmod rewrite ssl headers expires sudo systemctl restart apache2
عندما يتم ضبط نظامك بالكامل، يمكنك استخدام ما يلي:
cd /var/www git clone https://github.com/chamilo/chamilo-lms.git chamilo2 cd chamilo2 composer install # not recommended to do this as the root user! # when asked whether you want to execute the recipes or install plugins for some of the components, # you can safely type 'n' (for 'no'). yarn set version stable # delete yarn.lock as it might contain restrictive packages from a different context yarn up yarn install yarn dev # you can safely ignore any "warning" mentioned by yarn dev sudo touch .env sudo chown -R www-data: var/ .env config/
في تكوين خادم الويب لديك، تأكد من أنك تسمح بتفسير .htaccess ( AllowOverride all
و Require all granted
)، وقم بتوجيه DocumentRoot
إلى الدليل public/
الفرعي.
بمجرد أن يصبح ما ورد أعلاه جاهزًا، أدخل main/install/index.php واتبع تعليمات واجهة المستخدم (قاعدة البيانات، وإعدادات المستخدم الإداري، وما إلى ذلك).
بعد عملية التثبيت على الويب، قم بتغيير الأذونات مرة أخرى إلى حالة آمنة إلى حد معقول:
chown -R root .env config/
إذا قمت بتثبيته بالفعل وتريد فقط تحديثه من Git، فقم بما يلي:
git pull composer install # Database update php bin/console doctrine:schema:update --force --complete # Clean Symfony cache php bin/console cache:clear # js/css update yarn install yarn dev
ملاحظة للمطورين في مرحلة ما قبل ألفا: سيحاول أمر العقيدة تحديث مخطط قاعدة البيانات الخاصة بك إلى مخطط قاعدة البيانات المتوقع في تثبيت جديد. هذا ليس مثاليًا دائمًا، حيث أن Doctrine ستتخذ أسرع طريق للقيام بذلك. على سبيل المثال، إذا كان لديك عملية ترحيل لإعادة تسمية جدول (وهو ما قد ينطبق بشكل جيد على نظام يتم ترحيله في Chamilo 1)، فقد تعتبر Doctrine أن الجدول الوجهة غير موجود وأن الجدول الأصلي (الذي لا ينبغي أن يكون موجودًا في جدول جديد) install) لا يزال موجودًا، لذلك سيتم إسقاط الجدول القديم وإنشاء جدول جديد، مما يؤدي إلى فقدان كافة السجلات الموجودة في هذا الجدول في هذه العملية. لتجنب ذلك، يفضل تنفيذ عمليات الترحيل باستخدام ما يلي بدلاً من ذلك.
php bin/console doctrine:migrations:execute "ChamiloCoreBundleMigrationsSchemaV200Version[date]"
سيحترم هذا منطق الترحيل ويقوم بمعالجة البيانات المطلوبة.
سيؤدي هذا إلى تحديث تبعيات JS (الغزل) وPHP (المؤلف) في المجلد العام/الإنشاء.
في بعض الأحيان يكون هناك تعارضات مع الملفات الموجودة، ولتجنب ذلك إليك بعض التلميحات:
بالنسبة لأخطاء الملحن، يمكنك إزالة مجلد البائع وملف Composer.lock
بالنسبة لخيوط الغزل، يمكنك إزالة Yarn.lock .yarn/cache/*node_modules/*
عند فتح Chamilo، لا يتم تحميله، ثم يمكنك حذف var/cache/*
في حال كنت تعتقد أن بعض الإعدادات في Chamilo ربما لم تتم معالجتها بشكل صحيح استنادًا إلى عملية ترحيل غير كاملة أو عملية ترحيل تمت إضافتها بعد تثبيت إصدار التطوير الخاص بك من Chamilo، فقد تم إنشاء عنوان URL /admin/settings_sync لمحاولة إصلاح ذلك تلقائيًا عن طريق التحديث فئات PHP على أساس حالة قاعدة البيانات. نادرا ما تحدث هذه المشكلة.
إذا قمت بتثبيته في بيئة تطوير وتشعر أنه يجب عليك تنظيفه بالكامل (قد يكون ذلك ضروريًا بعد إجراء تغييرات على قاعدة البيانات)، فيمكنك القيام بذلك عن طريق:
إزالة ملف .env
قم بتحميل البرنامج النصي {url}/main/install/index.php مرة أخرى
يجب أن يتم تدمير قاعدة البيانات تلقائيًا، جدولًا تلو الآخر. في بعض الحالات القصوى (أنشأ إصدار سابق جدولًا لم يعد ضروريًا ويسبب مشكلات)، قد ترغب في تنظيفه بالكامل بمجرد إسقاطه، ولكن هذا لا ينبغي أن يكون ضروريًا في معظم الأوقات.
إذا، لسبب ما، لديك مشاكل مع الملحن أو الغزل، فإن الخطوة الأولى الجيدة هي حذف المجلد vendor/
بالكامل (للملحن) أو مجلد node_modules/
(للغزل).
إذا كنت مطورًا وترغب في المساهمة في Chamilo في فرع التطوير الحالي (غير مستقر بعد)، فيرجى اتباع التعليمات أدناه. يرجى الأخذ في الاعتبار أن إصدار التطوير غير مكتمل في الوقت الحالي، وأن العديد من الميزات لا تعمل بعد. وذلك لأننا نعمل على المكونات الجذرية التي تتطلب تغييرات هائلة في بنية التعليمات البرمجية والملفات وقاعدة البيانات. على هذا النحو، للحصول على نسخة صالحة للعمل، قد تحتاج إلى إلغاء التثبيت بالكامل وإعادة التثبيت من وقت لآخر. لقد تم تحذيرك.
أولاً، قم بتطبيق الإجراء الموضح هنا: إدارة CSS وJavaScript في Chamilo (على وجه الخصوص، تأكد من اتباع الروابط المحددة لتثبيت جميع المكونات الضرورية على جهاز الكمبيوتر الخاص بك).
ثم تأكد من أن قاعدة بياناتك تدعم البادئات الكبيرة (راجع موضوع Stack Overflow هذا إذا كنت تستخدم MySQL <5.7 أو MariaDB <10.2.2).
قم بتحميل عنوان URL (your-domain)/main/install/index.php لبدء برنامج التثبيت (والذي يشبه إلى حد كبير برنامج التثبيت في الإصدارات السابقة). إذا كان برنامج التثبيت بتنسيق HTML خالصًا ولا يظهر بتصميم نظيف، فذلك لأنك لم تتبع هذه التعليمات بعناية. ارجع إلى بداية هذا القسم وحاول مرة أخرى.
إذا كنت تريد إعادة التحميل السريع للأصول، فاستخدم الأمر yarn run encore dev-server
. سيؤدي هذا إلى تحديث أصولك تلقائيًا عند تعديلها ضمن assets/vue
. الوصول إلى مثيل chamilo الخاص بك كالمعتاد. في الخلفية، سيخدم هذا الأصول من خادم مخصص على http://localhost:8080. لا تصل إلى عنوان url هذا مباشرةً نظرًا لأن Encore هو المسؤول عن تغيير أصول عنوان url حسب الحاجة.
قد ترغب في دعم PHP 8.1 (لـ Chamilo 2) وPHP 7.4 (لجميع الأشياء الأخرى) على نفس الخادم في وقت واحد. على أوبونتو، يمكنك القيام بذلك بهذه الطريقة:
sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install php8.1 libapache2-mod-php7.4 php8.1-{modules} php7.4-{modules} sudo apt remove libapache2-mod-php8.1 php7.4-fpm sudo a2enmod proxy_fcgi sudo vim /etc/apache2/sites-available/[your-chamilo2-vhost].conf
في تكوين vhost، تأكد من تعيين PHP 8.1 FPM للرد على هذا المضيف الوحيد عن طريق إضافة ما يلي، في مكان ما بين علامات
:
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost" Require all denied Require all denied
ثم اخرج وأعد تشغيل Apache:
sudo systemctl restart apache2
أخيرًا، تذكر أنه يجب تغيير إعدادات PHP في /etc/php/8.1/fpm/php.ini وسيتعين عليك إعادة تحميل php8.1-fpm لأخذ تغييرات التكوين هذه في الاعتبار.
sudo systemctl reload php8.1-fpm
عند استخدام نسختين، ستواجه أيضًا مشكلات عند استدعاء composer update
، حيث يجب استدعاء هذا الإصدار بواسطة إصدار PHP ذي الصلة. يمكن القيام بذلك على النحو التالي:
/usr/bin/php8.1 /usr/local/bin/composer update or, for Chamilo 1.11 /usr/bin/php7.4 /usr/local/bin/composer update
إذا كان php-cli الافتراضي الخاص بك يستخدم PHP7.4 (انظر ln -s /etc/alternatives/php
)، فقد تواجه مشكلات في التشغيل مع ما يسمى بالبرنامج النصي platform_check.php
عند تشغيل composer update
على أي حال. وذلك لأن هذا البرنامج النصي لا يستخدم سياق التشغيل المناسب، وقد تحتاج إلى تغيير إعداداتك الافتراضية على Ubuntu (أي قم بتغيير الرابط /etc/alternatives/php للإشارة إلى إصدار php الآخر) قبل تشغيل composer update
. يمكنك دائمًا التراجع عن هذه العملية لاحقًا إذا كنت بحاجة إلى العودة إلى العمل على Chamilo 1.11 واشتكى الملحن مرة أخرى.
لاستخدام نماذج البرامج النصية لـ git Hook ضمن tests/scripts/git-hooks/
، يمكن استخدام الأوامر التالية.
git config core.hooksPath tests/scripts/git-hooks/
بشكل عام، تم نقل المجلد الرئيسي/ إلى public/main/
تم نقل app/Resources/public/assets إلى public/assets
تم نقل main/inc/lib/javascript إلى public/js
الرئيسي/img/ انتقل إلى العام/img
تم نقل الرئيسي/القالب/الافتراضي إلى src/CoreBundle/Resources/views
تم نقل src/Chamilo/XXXBundle إلى src/CoreBundle أو src/CourseBundle
تمت إزالة bin/doctrine.php، استخدم مبدأ bin/console: خيارات xyz
يتم تحميل صور المكونات الإضافية وcss وjs libs داخل المجلد public/plugins (يقوم تحديث الملحن بنسخ المحتوى الموجود داخل plugin_name/public داخل web/plugins/plugin_name
تستخدم قوالب المكونات الإضافية وظيفة الأصول () بدلاً من استخدام "_p.web_plugin"
إزالة main/inc/local.inc.php
تتم إدارة الترجمات من خلال Gettext
المكتبات
التكامل مع سيمفوني 5
تم استبدال PHPMailer بـ Symfony Mailer
كوخ تم استبداله بالغزل
يجري
php bin/console lexik:jwt:generate-keypair
في حامل إعداد Apache مع:
ترخيص SetEnvIf "(.*)" HTTP_AUTHORIZATION=$1
الحصول على الرمز المميز:
حليقة -k -X POST https://example.com/api/authentication_token -H "نوع المحتوى: تطبيق/json" -d '{"اسم المستخدم": "admin"، "كلمة المرور": "admin"}'
يجب أن يعود الرد بشيء مثل:
{"الرمز المميز": "MyTokenABC"}
انتقل إلى https://example.com/api
انقر فوق الزر "تفويض" واكتب القيمة Bearer MyTokenABC
ثم يمكنك إجراء استعلامات باستخدام رمز JWT.
راجع https://github.com/chamilo/chamilo-lms/projects/3
إذا كنت تريد إرسال ميزات أو تصحيحات جديدة إلى Chamilo 2، فيرجى اتباع دليل مساهمة Github https://guides.github.com/activities/contributing-to-open-source/ وملف CONTRIBUTING.md الخاص بنا. باختصار، نطلب منك أن ترسل لنا طلبات السحب بناءً على الفرع الذي قمت بإنشائه لهذا الغرض في مستودعك المتشعب من مستودع Chamilo الأصلي.
لمزيد من المعلومات حول Chamilo، قم بزيارة https://campus.chamilo.org/documentation/index.html