Git pour administrateurs

Attention : vous consultez actuellement la documentation dédiée aux versions 1.x de Moodle. La documentation pour les versions 2.x de Moodle est consultable ici : Git pour administrateurs et celle pour Moodle 3.x est consultable là : Git pour administrateurs.

Modèle:Installation

Cette page a pour but d'aider les administrateurs amateurs à installer et maintenir Moodle avec GIT.

Dans la mesure du possible, cette documentation se veut simplifiée.

Rappel : faites des sauvegardes (fichiers et BDD) avant de faire des modifications de vos installations.

Quezaco ?

GIT est un système qui permet d'héberger du code source et de publier ses modifications très rapidement. Du coup, plusieurs personnes peuvent travailler sur un même projet et centraliser leur travail pour leurs utilisateurs.

Un administrateur d'un site Moodle se contentera d'aller chercher le code qui l'intéresse pour l'installation, puis de faire les mises à jour rapidement. Moodle encourage d'ailleurs à utiliser ce système.

L'avantage par rapport au système FTP : c'est plus simple, plus sûre et plus rapide !

Se connecter au serveur

Vous pouvez utiliser GIT en ligne de commande, c'est le plus simple.

Pour avoir accès en ligne de commande à votre serveur, il faut une liaison SSH.

  • Sous Windows, vous pouvez utiliser Putty.
  • Sous Linux, le terminal fait l'affaire.
ssh votre_nom@ip_du_serveur

Installer GIT

Si GIT n'est pas disponible sur votre serveur, il faut l'installer.

  • Serveur type Debian / Ubuntu... (deb) :
sudo apt-get install git
  • Serveur type Centos / Fedora... (rpm) :
yum install git

Première installation par GIT

Pour utiliser GIT, il faut ouvrir les ports 9418 TCP & UDP de votre serveur. Puis :

  • Aller dans le répertoire parent :
cd /var/www/html/ (à adapter à votre serveur)
  • Installer Moodle par GIT : le répertoire moodle sera créé et les fichiers téléchargés.
git clone git://git.moodle.org/moodle.git
cd moodle
git branch -a
git checkout -b local_22_STABLE origin/MOODLE_22_STABLE (à adapter à la version désirée)
  • Copier le fichier de configuration modèle :
cp config-dist.php config.php
  • Modifier le fichier de configuration avec vos paramètres
nano config.php
  • Enregistrer et quitter le serveur :
exit


Nota : si vous voulez installer Moodle dans un dossier spécifique :

git clone git://git.moodle.org/moodle.git mon_dossier
cd mon_dossier
git branch -a
git checkout -b local_22_STABLE origin/MOODLE_22_STABLE (à adapter à la version désirée)

Mise à jour par GIT

Lors d'une mise à jour, GIT va comparer le code qui est dans votre serveur et le code hébergé chez le fournisseur de code, supprimer certaines lignes et en ajouter d'autres, idem pour les fichiers et répertoires.

  • Se connecter au serveur :
ssh votre_nom@ip_du_serveur
  • Aller dans le dossier Moodle :
cd /var/www/html/moodle/
  • Lancer la mise à jour des fichiers :
git pull
  • Quitter le serveur :
exit
  • Visiter la page de mise à jour avec un navigateur (page Notification), ou utiliser la ligne de commande adaptée.

En cas d'installation de plugins, thèmes ou code personnel

Si vous installez du code supplémentaire sur votre Moodle (quelque soit le moyen de le faire), il faut demander à GIT de ne pas vérifier les répertoires contenant ce code.

Pour cela, il faut tenir à jour un fichier qui liste les répertoires à ne pas superviser par GIT.

  • Se connecter au serveur :
ssh votre_nom@ip_du_serveur
  • Modifier le fichier :
nano /var/www/html/moodle/.git/info/exclude
  • Ajouter à la fin de ce fichier la liste des répertoires à ne pas superviser, par exemple pour un mod, un thème et un bloc :
/mod/mon_mod_ajouté/
/theme/mon_thème_ajouté/
/blocks/mon_bloc_ajouté/
  • Enregistrez et quittez le serveur.
exit

Installation de plugins, thèmes ou code personnel par GIT

Si vous voulez dans votre Moodle installer du code par GIT, la marche à suivre est la même : aller dans le répertoire parent, récupérer le code, aller dans le dossier créé, choisir votre branche.

N'oubliez pas de demander à GIT de ne pas superviser les répertoires créés.

La particularité est qu'en cas de mise à jour il faudra vérifier le code de Moodle et le code des plugins installés par GIT indépendamment (si vous souhaitez tout mettre à jour) :

cd /var/www/html/moodle/
git pull
cd /var/www/html/moodle/mod/mon_mod_ajouté/
git pull
cd /var/www/html/moodle/theme/mon_thème_ajouté/
git pull
cd /var/www/html/moodle/blocks/mon_bloc_ajouté/
git pull


Sécurité

Il est conseillé d'interdire le listage du dossier .git par le biais des navigateurs. Pour savoir si vous êtes concerné, allez sur http://www.votremoodle.org/.git

Plus globalement, il est conseillé d'interdire le listage des dossiers sur tout le site, voir même sur tout le serveur (et donc tous les sites hébergés).

Bloquer le listage par la configuration d'apache

Pour tous les sites

Dans le fichier httpd.conf d'apache, dans la section Directory, passez le paramètre Options à -Indexes.

<Directory />
...
Options -Indexes ...
...
</Directory>

Pour un site en particulier

En fin du fichier httpd.conf vous avez les sites publiés de votre serveur. Passez la variable Options Indexes en Options -Indexes dans le site concerné.

Bloquer le listage par un fichier .htaccess

Il faut créer un fichier .htaccess à la racine de votre site. C'est une solution pratique quand on n'a pas accès au paramétrage du serveur (serveur mutualisé par exemple).

  • Se connecter au serveur :
ssh votre_nom@ip_du_serveur
  • Modifier le fichier .htaccess (le créer s'il n'existe pas)
nano /var/www/html/moodle/.htaccess
  • Ajouter à la fin de ce fichier la directive pour interdire le listage des dossiers :
Options -Indexes
  • Enregistrez et quittez le serveur.
exit