Installer la suite e-learning Dokeos sur Debian 4.0 Etch
Dokeos est une suite e-learning Open Source compatible avec la norme SCORM. Ecrite en PHP, elle est complète, performante, et simple à mettre en oeuvre. Cet article vous guide au cours de sa mise en place sur un serveur Debian 4.0 Etch.
Pré-requis
En premier lieu, vous devez installer un serveur HTTP avec le support du PHP. Pour ce faire, vous pouvez suivre mon guide Installer Lighttpd et PHP 5 sur Debian 4.0 Etch.
Configuration de MySQL
Dokeos nécessite l'installation d'un serveur MySQL. Pour ce faire, vous pouvez suivre mon guide MySQL sur Debian 4.0 Etch.
Attention: Ne créez aucune base de données DOKEOS, ni utilisateur associé en suivant ce guide.
Contrairement à la plupart des applications que vous avez pu rencontrer, la configuration par défaut de Dokeos est de pouvoir créer ses propres bases de données. Cela implique qu'il dispose d'un utilisateur capable de créer ces bases de données.
Remarque: Il est possible d'utiliser Dokeos avec une seule base de données, mais cela peut poser des problèmes par la suite.
Nous allons donc créer un compte MySQL pour Dokeos avec la permission de créer des bases de données.
Si ce n'est déjà fait, nous commençons par installer apg et les clients MySQL:
/usr/bin/apt-get install apg mysql-client
Nous renseignons les paramètres de connexion de notre utilisateur Dokeos:
MYSQL_USERNAME=dokeos MYSQL_USERPWD=$(/usr/bin/apg -q -a 0 -n 1 -M NCL)
Nous affichons l'identifiant et le mot de passe de l'utilisateur pour Dokeos :
echo "L'utilisateur créé pour l'application Dokeos est '$MYSQL_USERNAME' avec le mot de passe '$MYSQL_USERPWD'."
Attention: Notez les informations affichées et conservez les précieusement !
Enfin, nous créons l'utilisateur et réglons ses habilitations.
echo "GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE ON \`dokeos_%\`.* TO '$MYSQL_USERNAME'@'localhost' IDENTIFIED BY '$MYSQL_USERPWD';" \ | mysql --user=root --password
Configuration de PHP
Une fois la base de donnée créée, nous reprenons le court normal des choses. Vous devez installer les extensions PHP et autres logiciels nécessaires:
/usr/bin/apt-get install php5-mysql php5-gd unzip
Nous modifions certains des paramètres par défaut de PHP:
- Pour LigHTTPd:
/bin/sed -i -e 's/memory_limit = .*/memory_limit = 256M/' /etc/php5/cgi/php.ini /bin/sed -i -e 's/display_errors = .*/display_errors = Off/' /etc/php5/cgi/php.ini /bin/sed -i -e 's/post_max_size = .*/post_max_size = 108M/' /etc/php5/cgi/php.ini /bin/sed -i -e 's/upload_max_filesize = .*/upload_max_filesize = 100M/' /etc/php5/cgi/php.ini /bin/sed -i -e 's/max_execution_time = .*/max_execution_time = 300/' /etc/php5/cgi/php.ini /bin/sed -i -e 's/max_input_time = .*/max_input_time = 600/' /etc/php5/cgi/php.ini
- Pour Apache 2:
/bin/sed -i -e 's/memory_limit = .*/memory_limit = 256M/' /etc/php5/apache2/php.ini /bin/sed -i -e 's/display_errors = .*/display_errors = Off/' /etc/php5/apache2/php.ini /bin/sed -i -e 's/post_max_size = .*/post_max_size = 108M/' /etc/php5/apache2/php.ini /bin/sed -i -e 's/upload_max_filesize = .*/upload_max_filesize = 100M/' /etc/php5/apache2/php.ini /bin/sed -i -e 's/max_execution_time = .*/max_execution_time = 300/' /etc/php5/apache2/php.ini /bin/sed -i -e 's/max_input_time = .*/max_input_time = 600/' /etc/php5/apache2/php.ini
N'oubliez pas de redémarrer votre serveur HTTP pour prendre en compte les nouveaux modules PHP. Par exemple, si vous utilisez LigHTTPd, exécutez:
/etc/init.d/lighttpd force-reload
Installation
En premier lieu, sélectionnez la version de Dokeos a installer:
VERSION=1.8.5
Et nous téléchargeons les sources:
/usr/bin/wget http://www.dokeos.com/download/dokeos-$VERSION.zip \ --output-document=/tmp/dokeos-$VERSION.zip
Ensuite, nous décompressons l'archive:
/usr/bin/unzip -d /tmp /tmp/dokeos-$VERSION.zip
Et nous déplaçons le dossier ainsi créé vers son emplacement définitif:
/bin/mv /tmp/dokeos-$VERSION /opt/dokeos
Nous modifions les permissions par défaut afin de les adapter à notre système:
/bin/chown -R root:root /opt/dokeos /usr/bin/find /opt/dokeos/ -type d | /usr/bin/xargs /bin/chmod 755 /usr/bin/find /opt/dokeos/ -type f | /usr/bin/xargs /bin/chmod 644
Nous donnons la propriété de certains dossiers à l'utilisateur du serveur HTTP afin qu'il puisse les modifier:
/bin/chown www-data:www-data /opt/dokeos/main/inc/conf /bin/chown www-data:www-data /opt/dokeos/main/garbage /bin/chown www-data:www-data /opt/dokeos/main/upload /bin/chown www-data:www-data /opt/dokeos/main/css /bin/chown www-data:www-data /opt/dokeos/main/default_course_document/images/ /bin/chown www-data:www-data /opt/dokeos/archive /bin/chown www-data:www-data /opt/dokeos/courses /bin/chown www-data:www-data /opt/dokeos/home /bin/chown www-data:www-data /opt/dokeos/home/*.html if [ -e /opt/dokeos/main/inc/conf/configuration.php ]; then /bin/chown www-data:www-data /opt/dokeos/main/inc/conf/configuration.php fi
Faites en sorte que Dokeos soit disponible depuis votre serveur HTTP:
/bin/ln -s /opt/dokeos /var/www/dokeos
Connectez-vous à votre serveur HTTP avec un navigateur pour lancer l'installation de Dokeos:
Dans l'étape 2 sur 6, celle des pré-requis, cliquez sur le bouton "Nouvelle installation" situé en bas de la page.
Lorsque vous arriverez à l'étape de configuration de la base de données, voici ce à quoi doit ressembler votre écran, une fois votre saisie terminée:
Poursuivez l'installation. Une fois celle-ci terminée, sécurisez votre installation de Dokeos en exécutant les commandes suivantes:
/bin/chmod ugo-w /opt/dokeos/main/inc/conf/configuration.php /bin/rm -r /opt/dokeos/main/install
Bug d'installation des plugins dans Dokeos 1.8.5
Afin de corriger le mécanisme d'installation des plugins de Dokeos 1.8.5, exécutez la ligne de commande suivante:
/bin/sed -i -e "535s/^.*\$/api_add_setting(\$form_name_elements['0'],\$form_name_elements['1'],\$form_name_elements['0'],null,'Plugins',\$form_name_elements['0'],null,null,null,\$_configuration['access_url'],1);/" \ /opt/dokeos/main/admin/settings.php
Pour plus d'information, visitez: FS#2771 - Plugin activation bug - SQL error.
Mise en place de l'import de documents PowerPoint
Dokeos permet de créer des cours à partir de documents PowerPoint via le plugin Oogie Woogie. Ce plugin nécessite l'installation de Java et de Open Office.
Si ce n'est déjà fait, nous installons Java:
/usr/bin/apt-get install sun-java5-jre sun-java5-fonts
Et nous en faisons la machine virtuelle par défaut:
/usr/sbin/update-java-alternatives --set java-1.5.0-sun
Nous installons OpenOffice.org en tant que service. Pour ce faire, installez les composants nécessaires:
/usr/bin/apt-get install xvfb openoffice.org xbase-clients
Et nous installons les polices nécessaire à X:
/usr/bin/apt-get --reinstall install xfonts-base
Et nous installons les polices Microsoft pour améliorer le rendu des documents PowerPoint:
/usr/bin/apt-get install msttcorefonts
Configurez OpenOffice.org pour activer son mode service:
/bin/sed -i -e '/ooSetupShowIntro/i\
<prop oor:name="ooSetupConnectionURL">\
<value>socket,host=localhost,port=2002;urp;StarOffice.ServiceManager</value>\
</prop>' \
/usr/lib/openoffice/share/registry/data/org/openoffice/Setup.xcu
Téléchargez et installez le script init.d de contrôle du service:
/usr/bin/wget http://howto.landure.fr/gnu-linux/debian-4-0-etch/installer-la-suite-e-learning-dokeos-sur-debian-4-0-etch/ooo-server \ --output-document=/etc/init.d/ooo-server /bin/chmod +x /etc/init.d/ooo-server
Créez l'utilisateur système destiné à exécuter le serveur
/usr/sbin/adduser --system --home /var/lib/ooo-server oooserver
Et ajoutez le au démarrage du système:
/usr/sbin/update-rc.d ooo-server defaults
Et enfin, démarrez le serveur:
/etc/init.d/ooo-server start
Une fois ceci fait, configurez Dokeos pour utiliser ce service. Pour ce faire, visitez la page de configuration de Oogie Woogie:
http://localhost/dokeos/main/admin/configure_extensions.php?display=ppt2lp
Et saisissez les paramètres suivants:
- Hôte: localhost
- Port: 2002
Les autres champs peuvent rester vide.
Remarque: Si vous comptez installer le module de vidéo-conférence, vous pouvez l'utiliser pour enregistrer une version audio de vos cours. Pour ce faire renseignez la valeur suivante:
-
Chemin vers les fichiers OpenLaszlo LZX: /main/conference/recorder2.swf
Mise en place du module de vidéo-conférence
Dokeos permet d'organiser des formations en vidéo conférence. Les cours Dokeos servent alors de support de formation. Pour activer cette fonctionnalité, il faut installer un certain nombre de logiciels suplémentaires.
Installation de Red5
En premier lieu, il vous faut installer le serveur Flash Open Source Red 5. Pour ce faire, nous avons besoin de Java:
/usr/bin/apt-get install sun-java5-jre sun-java5-fonts
Et nous en faisons la machine virtuelle par défaut:
/usr/sbin/update-java-alternatives --set java-1.5.0-sun
Téléchargez le paquet Debian de la version 0.6.3 de Red5 (les applications Dokeos ne fonctionnent pas sur les versions postérieures):
/usr/bin/wget http://dl.fancycode.com/red5/0.6.3/debian/red5_0.6.3-1_all.deb \ --output-document=/tmp/red5_0.6.3-1_all.deb
Et installez le:
/usr/bin/dpkg -i /tmp/red5_0.6.3-1_all.deb
Remarque: par défaut, Red5 écoute sur le port 5080 pour le protocole HTTP et 8443 pour le protocole HTTPS. Cette configuration peut être modifiée dans les fichiers red5.xml, red5-rtmpt.xml, red5-origin.xml et red5.properties du dossier /usr/lib/red5/conf (Un jour, les gens apprendrons à faire des paquets Debian proprement.....)
Nous créons un mot de passe aléatoire pour l'utilisateur d'administration de Red5:
RED5_PASSWORD=$(/usr/bin/apg -q -a 0 -n 1 -M NCL)
Nous l'affichons:
/bin/echo "Le mot de passe de l'utilisateur 'admin' du serveur Red5 est : '$RED5_PASSWORD'"
Remarque: Conservez ce mot de passe précieusement.
Et nous le mettons en place:
/bin/sed -i -e "s/^\(admin: \)[^,]*\(,.*\)$/\1$RED5_PASSWORD\2/" /usr/lib/red5/conf/realm.properties
Redémarrez le serveur Red5 pour prendre en compte toutes ces modifications:
/etc/init.d/red5 restart
Installation du module Dokeos Recorder
Nous téléchargeons le module Dokeos Recorder pour Red5. Pour ce faire, nous précisons la version que nous souhaitons installer:
VERSION=2.0.0-M2
Et nous lanceons le téléchargement:
/usr/bin/wget http://www.dokeos.com/maven/repository/com/dokeos/dokeos-recorder/${VERSION}/dokeos-recorder-${VERSION}.war \ --output-document=/usr/lib/red5/webapps/dokeos-recorder.war /usr/bin/wget http://www.dokeos.com/maven/repository/com/dokeos/dokeos-videoconf/${VERSION}/dokeos-videoconf-${VERSION}.war \ --output-document=/usr/lib/red5/webapps/dokeos-videoconf.war
Nous créons le fichier de configuration de l'application Red5 dokeos-recorder:
/bin/mkdir --parent /etc/dokeos /bin/echo '<?xml version="1.0" encoding="UTF-8"?> <recorder-config> <video-streams-dir>/opt/dokeos/recorded-streams</video-streams-dir> <vod-streams-dir>/opt/dokeos/vod-streams</vod-streams-dir> </recorder-config>' \ | /usr/bin/tee /etc/dokeos/recorder-config.xml
Nous créons le fichier de configuration de l'application Red5 dokeos-videoconf:
/bin/mkdir --parent /etc/dokeos /bin/echo '<?xml version="1.0" encoding="UTF-8"?> <videoconference-config> <server-keys> </server-keys> <moderator-check-on-whiteboard>false</moderator-check-on-whiteboard> <video-streams-dir>/opt/dokeos/recorded-streams</video-streams-dir> <vod-streams-dir>/opt/dokeos/vod-streams</vod-streams-dir> </videoconference-config>' \ | /usr/bin/tee /etc/dokeos/videoconference-config.xml
Dans les deux fichiers de configuration ci-avant, les dossiers suivants sont défini:
- video-streams-dir est le dossier ou sont enregistrés les flux. Par défaut: /opt/dokeos/recorded-streams
- vod-streams-dir est le dossier où sont cherché les flux lus. Par défaut: /opt/dokeos/vod-streams
Nous renseignons l'URL de notre installation Dokeos:
URL="http://www.domaine.com/dokeos"
Nous mettons à jour le fichier ainsi créé avec les URL des instances Dokeos:
CLEAN_URL=$(/bin/echo $URL \ | /bin/sed -e 's|^http[s]\{0,1\}://||' \ -e 's|/|_|g' \ -e 's|_$||g' \ -e 's|.*|\0_|') DOMAIN_NAME=$(/bin/echo $URL | /bin/sed -e 's|^http://\([^/]*\).*|\1|') PASSWORD=$(/usr/bin/apg -q -a 0 -n 1 -M NCL) /bin/sed -i -e "/<server-keys>/a\ <server-key host=\"${CLEAN_URL}\" key=\"${PASSWORD}\" />" \ /etc/dokeos/videoconference-config.xml /bin/echo "Les parametres pour configurer la video-conference sont: - Nom d'hote: ${DOMAIN_NAME} - Port : 1935 - Mot de passe: ${PASSWORD}"
Cette ligne de commande vous fournit les paramètres à saisir dans la page de configuration de la vidéo-conférence dans l'interface d'administration de Dokeos:
Important: Si vous êtes derrière un pare-feu, n'oubliez pas d'ouvrir le port RMTP 1935 vers votre serveur Red5.
Une fois ceci fait, nous redémarreons le service Red5 pour prendre en compte la configuration:
/etc/init.d/red5 stop /etc/init.d/red5 start
Configuration des journaux de Red5
Remarque: cette étape est optionnelle.
Afin de facilité l'étude des éventuels problèmes, vous pouvez activer la fonctionnalité de journal de Red5. Pour ce faire,nous modifions le fichier adéquat:
/bin/sed -i -e 's/^log4j\.rootCategory.*/#\0/' \ -e '/log4j\.rootCategory/a\ log4j.rootCategory=DEBUG, FLOG' \ -e 's|^\(log4j\.appender.FLOG.File=\).*$|\1/var/log/red5.log|' \ /usr/lib/red5/conf/log4j.properties
Redémarrez Red5 pour prendre en compte ces modifications:
/etc/init.d/red5 stop /etc/init.d/red5 start
Vous devriez maintenant trouver les journaux de Red5 dans le fichier /var/log/red5.log:
/usr/bin/tail -f /var/log/red5.log
Remerciements
- Merci aux développeurs de Dokeos.
- Merci à l'auteur de la page Make OpenOffice.org listening.
- Merci aux développeurs du serveur Flash Open Source Red5.
- Merci aud développeurs de l'application OpenLaszlo.
- Merci à l'auteur de la page Installing VideoConference 2.0.
- Merci à Thomas De Praetere et Willy Roy-Belleplaine pour leur document PDF Dokeos : suite e-Learning compatible SCORM.
- Merci à Dokeos lead developer's Weblog pour l'article Added documentation for Red5 server installation.
Merci