Ludiscape se présente sous la forme d’une palette d’outils intégrée conçue pour créer du contenu multimédia, du e-learning, du mobile-learning et de jeu sérieux.
Ludiscape a été conçu comme une solution de création logicielle simple et efficace et permettre de publier le contenu sur des systèmes LMS, SCORM et xApi TinCan.
Chamilo est un logiciel open source de gestion de l’apprentissage et du contenu d’apprentissage, dont l’objectif est d’améliorer l’accès global à l’éducation et au savoir.
Différentes adresses internet avec Chamilo LMS
Une limitation qui peut être gênante sur la plateforme Chamilo est qu’elle ne peut répondre qu’à une seule adresse internet* à la fois.
Cela vient simplement d’une très ancienne base de code et du fait qu’à un moment donné dans le passé, il n’était pas si facile d’obtenir l’adresse à partir de l’URL ou des en-têtes HTTP d’une manière fiable.
De nos jours, cependant, il est tout à fait possible de dire que votre hôte est (en PHP) $_SERVER[‘HTTP_HOST’], donc vous pouvez modifier le fichier de configuration de Chamilo (main/inc/conf/conf/configuration.php ou app/config/configuration.php dans Chamilo 1.11.x) comme ceci :
L’un des signes que votre plateforme de formation Chamilo est mal configurée et l’apparition de carrés a la place des icônes (voir capture d’écran ci-jointe)
Dès la page d’accueil (index.php) le probleme est visible.
Il est probable que cela n’ait pas vraiment d’impact sur la sécurité, car d’autres systèmes similaires (comme Drupal, Joomla, etc.) permettent également au HTTP_HOST de déterminer le chemin root du web.
Une sécuritée supplémentaire serait de permettre manuellement la définition d’une « liste » d’hôtes autorisés.
Si nous ne trouvons aucune raison claire d’empêcher l’utilisation de cette technique dans Chamilo, il est probable que la version 2 s’appuieront sur ce point pour éviter la dépendance stricte de l’hôte défini dans $_configuration[‘root_web’].
Il y aura probablement également une exigence sur $_SERVER[‘SERVER_PROTOCOL’] aussi bien pour identifier les cas où nous utilisons HTTPS (certificats SSL).
Un autre membre de la communauté Chamilo a signalé que, lorsqu’il utilisait ce qu’il appelle un « navigateur sécurisé » , il rencontrait des problèmes de communication avec le serveur sur lequel est installé Chamilo.
Apparemment, le « navigateur sécurisé » essaie de forcer HTTPS sur une communication non-HTTPS, et de reformater les URLs* d’une certaine manière. Il s’agit du même genre de problèmes que ci-dessus, car le serveur n’accepte pas d’URL différentes.
Pour corriger cela, vous pouvez inclure le traitement HTTPS au code ci-dessous :
$_configuration[‘root_web’] = ‘http://my.chamiloversion2.org/’;
if (!empty($_SERVER[‘HTTP_HOST’])) {
if (!empty($_SERVER[‘HTTPS’]) && $_SERVER[‘HTTPS’] != ‘off’) {
$_configuration[‘root_web’] = ‘https://’.$_SERVER[‘HTTP_HOST’].’/’;
} else {
$_configuration[‘root_web’] = ‘http://’.$_SERVER[‘HTTP_HOST’].’/’;
}
}
Deuxième cas particulier : dans des cas où, parce qu’il est derrière un reverse-proxy dans HTTPS.
Dans ce cas la: la plateforme chamilo ne reçoit pas l’élément $_SERVER[‘HTTPS’], mais plutôt $_SERVER[‘HTTP_X_FORWARDED_PROTO’] avec une valeur ‘https’. Dans ce cas, vous devez ajouter des conditions supplémentaires à votre code PHP:
$_configuration[‘root_web’] = ‘http://my.chamiloversion2.org/’;
if (!empty($_SERVER[‘HTTP_HOST’])) {
if ((!empty($_SERVER[‘HTTPS’]) && $_SERVER[‘HTTPS’] != ‘off’)
or (!empty($_SERVER[‘HTTP_X_FORWARDED_PROTO’]) && $_SERVER[‘HTTP_X_FORWARDED_PROTO’] == ‘https’)) {
$_configuration[‘root_web’] = ‘https://’.$_SERVER[‘HTTP_HOST’].’/’;
} else {
$_configuration[‘root_web’] = ‘http://’.$_SERVER[‘HTTP_HOST’].’/’;
}
}
* Adresse internet / URL voir définition dans wikipédia
Troisième cas particulier : Un autre membre souhaite prendre en charge à la fois une adresse IP locale avec un sous-dossier dans lequel Chamilo se trouve (par exemple http://172.69.49.42/chamilolms) *et* un domaine public normal comme http://my.chamiloversion2.org/.
Cela pose problème, car on distingue clairement les installations dans un sous-dossier et les installations dans un dossier racine (ou en anglais « root domain path »).
Néanmoins, le code PHP qui suit a été testé et semble fonctionner très bien, car la seule différence entre le mode sous-dossier et le mode dossier racine est l’élément url_append du tableau $_configuration.
$_configuration[‘url_append’] = ‘/chamilo’;
$_configuration[‘root_web’] = ‘http://172.69.49.42/chamilolms/’;
if (!empty($_SERVER[‘HTTP_HOST’]) && $_SERVER[‘HTTP_HOST’] != ‘172.69.49.42’) {
if (!empty($_SERVER[‘HTTPS’]) && $_SERVER[‘HTTPS’] != ‘off’) {
$_configuration[‘root_web’] = ‘https://my.chamiloversion2.org/’;
} else {
$_configuration[‘root_web’] = ‘http://my.chamiloversion2.org/’;
}
$_configuration[‘url_append’] = »;
}
Ce type de configuration ne fonctionnera jamais avec un certificat SSL,car vous devez définir un nom d’hôte réel pour obtenir un certificat.
Optimisations pour WAMP serveur local
Lorsque vous utilisez Wamp sous Windows sans définition de domaine particulier (comme http://localhost/), Wamp vous force à utiliser une configuration de sous-répertoire comme celle-ci : http://localhost/chamilo-1-11-12/
Si c’est le cas, un effet bizarre peut être observé lorsque la configuration normale de Chamilo et en particulier du paramètre « URL append » ne fonctionne pas. Après quelques essais et erreurs, nous pouvons confirmer que ce qui suit a fonctionné au moins sur une installation Wamp (A adapter bien-sur) :
$_configuration[‘root_web’] = ‘http://localhost/chamilo/’;
if (!empty($_SERVER[‘HTTP_HOST’])) {
$_configuration[‘root_web’] = ‘http://’.$_SERVER[‘HTTP_HOST’].’/chamilo/’;
}
$_configuration[‘url_append’] = »;
De plus, l’installation sur Wamp nécessite
« si vous utilisez Apache », de configurer des droits supplémentaires dans votre fichier de configuration httpd.conf pour Apache, y compris une instruction « Require all granted »
« Pour accélérer la vue de vos contenus elearning en local » vous pouvez aussi modifier la page lp_view.php
Les iframes sont utilisées pour charger les contenus SCORM dans le LMS Chamilo. La principale raison d’utiliser la technique iframe est que le contenu iframe peut être chargé en parallèle avec la page principale: il ne bloque pas la page principale. Le chargement de contenu dans un iframe a cependant deux inconvénients, comme le souligne Steve Souders dans son article de blog Using Iframes Sparignly :
Ces deux inconvénients sont : une iframe bloque le chargement de la page principale et que la page principale et iframe partagent le même pool de connexions
Le blocage de la charge est le plus gros problème des deux et degrade le plus les performances. Vous voulez vraiment que l’événement load se déclenche le plus tôt possible, pour une expérience utilisateur optimale.
Dans Chamilo si vous observé une lenteur vous pouvez modifier la page lp_view.php dnas main/lp/
Il suffit de réécrire l’url du contenu pour accélérer l’expérience de chargement :
Recommandations supplémentaires pour Chamilo sur Wamp :
Pensez à attribuer des identifiants admin et apprenants correspondant aux sous dossiers pour éviter que votre gestionnaire de mot de passe se mélange les pinceaux.
.htaccess optimisé pour Chamilo
Le fichier .htaccess se situe à la racine de votre site chamilo Il permet de donner des instructions sur les modalités d’accès au contenu de votre site grâce à des fichiers de configuration spécifiques aux serveurs web Apache.
Cela peut sous entendre des règles d’accès, de blocage, de cache, etc…
Qui dit « accès aux contenus » d’un site, dit « sécurisation ».
Par défaut certaines URL sont redirigés vers une erreur 403 mais cela peux également provoqué des erreurs de consultations de certains contenus qui ont une part dynamique.
RedirectMatch 403 ^/main/default_course_document/images/.*\.ph(p[3457]?|t|tml|ar)$
RedirectMatch 403 ^/main/lang/.*\.ph(p[3457]?|t|tml|ar)$
RedirectMatch 403 ^/web/css/.*\.ph(p[3457]?|t|tml|ar)$
De la même manière certaine URL ne peuvent pas etre consulté directement sans l’autorisation Chamilo mais cela peux également provoqué des lenteurs de consultations de certains contenus qui ont un nombre conséquent de fichiers.
Enfin vous pouvez rediriger les requêtes http vers un protocole https
Configuration par tunnels SSH
Parfois vous pourriez avoir un utilisateur qui vous demande de le faire sur un serveur de son infrastructure sans aucun accès HTTP ou HTTPS au portail Chamilo.
Il faut alors contruire des tunnels en SSH.
Un tunnel SSH est un protocole de communication qui va chiffrer dès le départ la connexion entre les deux ordinateurs.
SSH est l’abréviation de Secure SHell.
Secure est pour sécurisé notament la connexion à un ordinateur distant. Car
un SHell est une interface utilisateur Souvent une console, un interpréteur de lignes de commandes, mais ce peut être aussi une interface graphique .
SSH va donc nous permettre de nous connecter à un autre ordinateur en toute sécurité, c-à-dire que toutes les informations (y compris les informations d’authentification)
Fondamentalement, si votre ordinateur est A, que vous vous connectez avec SSH au serveur B du centre de données de votre client et que vous vous connectez ensuite au serveur C où Chamilo doit être installé, vous pouvez effectuer le téléchargement et la configuration du serveur simplement via SSH. Mais alors vous aurez besoin (idéalement, parce que vous pouvez aussi l’installer sans tête avec Chash) d’un navigateur pour vous connecter au portail et procéder à l’installation.
Si vous *utilisez* HTTPS, n’oubliez pas de l’utiliser dans votre navigateur : https://chamilo.c.com:8081/, sinon Chamilo pourrait ne pas le détecter comme HTTPS et l’installer dans HTTP par défaut (ce qui pourrait causer des problèmes pour y accéder ensuite).
N’oubliez pas, lors de l’installation, de supprimer le port de l’URL Chamilo que l’installateur détectera automatiquement. De toute évidence, vous ne voulez pas que Chamilo ne réponde que sur une URL avec :8081 à la fin du nom de domaine !
Cette courte explication, si vous la comprenez bien, devrait vous sortir de l’embarras et vous permettre de configurer Chamilo correctement.
Pour ce faire, vous devrez lancer la commande suivante à partir de votre ordinateur
ssh 8180:C.C.C.C.C.C.C:80 user@B
Et puis vous pouvez ouvrir votre navigateur sur http://localhost:8180 et vous devriez voir l’écran d’installation de Chamilo.
Maintenant il y a *beaucoup* de variations à cela. La première est que « localhost » doit correspondre au nom de votre portail Chamilo sur le serveur C. Ce n’est pas souvent le cas, et si c’était le cas, vous n’installeriez probablement pas un vrai serveur de production.
Pour vous permettre de charger le serveur C avec le bon hôte, vous devez faire croire à votre ordinateur qu’il répond au nom de domaine du serveur C (disons chamilo.c.com). Vous faites cela en ajoutant l’hôte dans votre fichier /etc/hosts, sur la ligne « 127.0.0.0.1 ».
De cette façon, vous configurez votre navigateur pour charger http://chamilo.c.com:8081/ et vous arriverez par magie sur la page d’installation de Chamilo, cette fois avec le bon nom de domaine, pour que vous puissiez configurer l’installateur correctement ?
Mais pour que Chamilo accepte le concept d’un port supplémentaire sur l’URL (8081 dans ce cas), vous devrez configurer une de ces redirections intelligentes dans la première ou deuxième section de cet article (deuxième si vous utilisez HTTPS).
Si vous *utilisez* HTTPS, n’oubliez pas de l’utiliser dans votre navigateur : https://chamilo.c.com:8081/, sinon Chamilo pourrait ne pas le détecter comme HTTPS et l’installer dans HTTP par défaut (ce qui pourrait causer des problèmes pour y accéder ensuite).
N’oubliez pas, lors de l’installation, de supprimer le port de l’URL Chamilo que l’installateur détectera automatiquement. De toute évidence, vous ne voulez pas que Chamilo ne réponde que sur une URL avec :8081 à la fin du nom de domaine !
Cette courte explication, si vous la comprenez bien, devrait vous sortir de l’embarras et vous permettre de configurer Chamilo correctement.