Chamilo est une plateforme d'e-learning, également appelée « LMS », publiée sous licence GNU/GPLv3+. Il a été utilisé par plus de 30 millions de personnes dans le monde depuis sa création en 2010. Il s'agit d'une version de développement. Pour la branche stable actuelle, veuillez sélectionner la branche 1.11.x dans l'onglet Code.
Chamilo 2.0 est toujours en développement. Cette procédure d'installation ci-dessous est à titre de référence uniquement. Pour un Chamilo stable, veuillez installer Chamilo 1.11.x. Voir le fichier README.md de la branche 1.11.x pour plus de détails.
Nous supposons que vous disposez déjà de :
composer 2.x - https://getcomposer.org/download/
fil +4.x - https://yarnpkg.com/getting-started/install
Nœud >= v18+ (lts) - https://github.com/nodesource/distributions/blob/master/README.md
Configuration d'un hôte virtuel dans un domaine, pas dans un sous-dossier à l'intérieur d'un domaine.
Un serveur LAMP/WAMP fonctionnel avec PHP 8.1+
Vous aurez besoin de PHP8+ et NodeJS v18+ pour exécuter Chamilo 2. Sur une nouvelle Ubuntu 22.04, vous pouvez préparer votre serveur en émettant une commande apt comme la suivante avec sudo (ou en tant que root, mais non recommandé pour des raisons de sécurité) :
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
Si nodejs est déjà installé, vérifiez la version avec node -v
Sinon, installez node 18 ou supérieur :
en suivant les instructions ici : https://deb.nodesource.com/node_20.x/. Les lignes suivantes utilisent une version statique de ces instructions, donc probablement pas très durables dans le temps
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
Une autre option pour installer nodejs consiste à utiliser NVM (Node Version Manager). Vous pouvez l'installer en suivant les instructions ici. Ensuite, vous pouvez installer la version du nœud requise. De préférence, la version LTS.
sudo nvm install --lts sudo nvm use --lts
Une fois NodeJS installé, vous devez activer le corepack, puis continuer avec les exigences
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
Lorsque votre système est prêt, vous pouvez utiliser les éléments suivants :
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/
Dans la configuration de votre serveur Web, assurez-vous d'autoriser l'interprétation de .htaccess ( AllowOverride all
et Require all granted
) et pointez DocumentRoot
vers le sous-répertoire public/
.
Une fois ce qui précède est prêt, entrez le main/install/index.php et suivez les instructions de l'interface utilisateur (base de données, paramètres utilisateur administrateur, etc.).
Après le processus d'installation Web, rétablissez les autorisations dans un état raisonnablement sûr :
chown -R root .env config/
Si vous l'avez déjà installé et souhaitez simplement le mettre à jour depuis Git, faites :
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
Remarque pour les développeurs en phase pré-alpha : la commande doctrine tentera de mettre à jour votre schéma de base de données vers le schéma de base de données attendu dans une nouvelle installation. Ce n’est pas toujours parfait, car Doctrine empruntera la voie la plus rapide pour y parvenir. Par exemple, si vous avez une migration pour renommer une table (ce qui s'appliquerait très bien à un système dans Chamilo 1 en cours de migration ), Doctrine pourrait considérer que la table de destination n'existe pas et que l'originale (qui ne devrait pas être là dans un nouveau installation) est toujours là, il supprimera donc simplement l'ancienne table et en créera une nouvelle, perdant ainsi tous les enregistrements de cette table dans le processus. Pour éviter cela, préférez plutôt exécuter les migrations avec ce qui suit.
php bin/console doctrine:migrations:execute "ChamiloCoreBundleMigrationsSchemaV200Version[date]"
Celui-ci respectera la logique de migration et effectuera le traitement des données requis.
Cela mettra à jour les dépendances JS (yarn) et PHP (composer) dans le dossier public/build.
Parfois, il y a des conflits avec des fichiers existants, alors pour les éviter, voici quelques conseils :
pour les erreurs du compositeur, vous pouvez supprimer le dossier du fournisseur et le fichier composer.lock
pour les erreurs de fil, vous pouvez supprimer fil.lock .yarn/cache/* node_modules/*
à l'ouverture de Chamilo, il ne se charge pas, alors vous pouvez supprimer var/cache/*
Si vous pensez que certains paramètres de Chamilo n'ont pas été traités correctement en raison d'une migration incomplète ou d'une migration ajoutée après l'installation de votre version de développement de Chamilo, l'URL /admin/settings_sync est conçue pour essayer de résoudre ce problème automatiquement en mettant à jour. Classes PHP basées sur l'état de la base de données. Ce problème se produit rarement, cependant.
Si vous l'avez installé dans un environnement de développement et que vous sentez que vous devriez le nettoyer complètement (cela peut être nécessaire après des modifications apportées à la base de données), vous pouvez le faire en :
Suppression du fichier .env
Chargez à nouveau le script {url}/main/install/index.php
La base de données doit être automatiquement détruite, table par table. Dans certains cas extrêmes (une version précédente a créé une table qui n'est plus nécessaire et crée des problèmes), vous souhaiterez peut-être la nettoyer complètement en la supprimant simplement, mais cela ne devrait pas être nécessaire la plupart du temps.
Si, pour une raison quelconque, vous rencontrez des problèmes avec composer ou Yarn, une bonne première étape consiste à supprimer complètement le dossier vendor/
(pour composer) ou le dossier node_modules/
(pour Yarn).
Si vous êtes un développeur et souhaitez contribuer à Chamilo dans la branche de développement actuelle (pas encore stable), veuillez suivre les instructions ci-dessous. Veuillez garder à l’esprit que la version de développement n’est PAS COMPLÈTE pour le moment et que de nombreuses fonctionnalités ne fonctionnent tout simplement pas encore. En effet, nous travaillons sur des composants racine qui nécessitent des modifications massives de la structure du code, des fichiers et de la base de données. En tant que tel, pour obtenir une version fonctionnelle, vous devrez peut-être désinstaller et réinstaller complètement de temps en temps. Vous êtes prévenu.
Tout d'abord, appliquez la procédure décrite ici : Gestion des CSS et JavaScript dans Chamilo (assurez-vous notamment de suivre les liens indiqués pour installer tous les composants nécessaires sur votre ordinateur).
Assurez-vous ensuite que votre base de données prend en charge les préfixes volumineux (voir ce fil de discussion Stack Overflow si vous utilisez MySQL < 5.7 ou MariaDB < 10.2.2).
Chargez l'URL (votre-domaine)/main/install/index.php pour démarrer le programme d'installation (qui est très similaire au programme d'installation des versions précédentes). Si le programme d'installation est en HTML pur et n'apparaît pas avec une mise en page claire, c'est parce que vous n'avez pas suivi attentivement ces instructions. Revenez au début de cette section et réessayez.
Si vous souhaitez un rechargement à chaud pour les ressources, utilisez la commande yarn run encore dev-server
. Cela actualisera automatiquement vos actifs lorsque vous les modifierez sous assets/vue
. Accédez à votre instance Chamilo comme d'habitude. En arrière-plan, cela servira les ressources d'un serveur personnalisé sur http://localhost:8080. N'accédez pas directement à cette URL, car Encore est chargé de modifier les ressources de l'URL selon vos besoins.
Vous souhaiterez peut-être prendre en charge PHP 8.1 (pour Chamilo 2) et PHP 7.4 (pour toutes les autres choses) simultanément sur le même serveur. Sur Ubuntu, vous pouvez procéder de cette façon :
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
Dans la configuration du vhost, assurez-vous de configurer PHP 8.1 FPM pour répondre à ce vhost unique en ajoutant, quelque part entre vos balises
, les éléments suivants :
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost" Require all denied Require all denied
Ensuite, quittez et redémarrez Apache :
sudo systemctl restart apache2
Enfin, rappelez-vous que les paramètres PHP devront être modifiés dans /etc/php/8.1/fpm/php.ini et que vous devrez recharger php8.1-fpm pour prendre en compte ces changements de configuration.
sudo systemctl reload php8.1-fpm
Lorsque vous utilisez 2 versions, vous rencontrerez également des problèmes lors de l'appel composer update
, car celle-ci doit être appelée par la version PHP appropriée. Cela peut être fait comme ceci :
/usr/bin/php8.1 /usr/local/bin/composer update or, for Chamilo 1.11 /usr/bin/php7.4 /usr/local/bin/composer update
Si votre php-cli par défaut utilise PHP7.4 (voir ln -s /etc/alternatives/php
), vous pourriez de toute façon rencontrer des problèmes d'exécution avec un soi-disant script platform_check.php
lors de l'exécution composer update
. En effet, ce script n'utilise pas le contexte de lancement approprié et vous devrez peut-être modifier vos paramètres par défaut sur Ubuntu (c'est-à-dire modifier le lien /etc/alternatives/php pour pointer vers l'autre version de php) avant de lancer composer update
. Vous pouvez toujours annuler cette opération plus tard si vous devez retourner travailler sur Chamilo 1.11 et que Composer se plaint à nouveau.
Pour utiliser les exemples de scripts git hook sous tests/scripts/git-hooks/
, les commandes suivantes peuvent être utilisées.
git config core.hooksPath tests/scripts/git-hooks/
en général, le dossier main/ a été déplacé vers public/main/
app/Resources/public/assets déplacé vers public/assets
main/inc/lib/javascript déplacé vers public/js
main/img/ déplacé vers public/img
main/template/default déplacé vers src/CoreBundle/Resources/views
src/Chamilo/XXXBundle déplacé vers src/CoreBundle ou src/CourseBundle
bin/doctrine.php supprimé, utilisez les options bin/console doctrine:xyz
Les images de plugin, les bibliothèques CSS et js sont chargées dans le dossier public/plugins (la mise à jour du compositeur copie le contenu dans plugin_name/public dans web/plugins/plugin_name
Les modèles de plugins utilisent la fonction Asset() au lieu d'utiliser "_p.web_plugin"
Supprimer main/inc/local.inc.php
Traductions gérées via Gettext
Bibliothèques
Intégration avec Symfony 5
PHPMailer remplacé par Symfony Mailer
tonnelle remplacée par du fil
Courir
php bin/console lexique:jwt:generate-keypair
Dans Apache, installez Bearer avec :
Autorisation SetEnvIf "(.*)" HTTP_AUTHORIZATION=$1
Obtenez le jeton :
curl -k -X POST https://example.com/api/authentication_token -H "Type de contenu : application/json" -d '{"nom d'utilisateur": "admin", "mot de passe": "admin"}'
La réponse devrait renvoyer quelque chose comme :
{"token": "MonTokenABC"}
Accédez à https://example.com/api
Cliquez sur le bouton "Autoriser" et écrivez la valeur Bearer MyTokenABC
Ensuite, vous pouvez effectuer des requêtes à l'aide du jeton JWT.
Voir https://github.com/chamilo/chamilo-lms/projects/3
Si vous souhaitez soumettre de nouvelles fonctionnalités ou correctifs à Chamilo 2, veuillez suivre le guide de contribution Github https://guides.github.com/activities/contributing-to-open-source/ et notre fichier CONTRIBUTING.md. En bref, nous vous demandons de nous envoyer des Pull Requests basées sur une branche que vous créez à cet effet dans votre référentiel forké à partir du référentiel Chamilo d'origine.
Pour plus d'informations sur Chamilo, visitez https://campus.chamilo.org/documentation/index.html