Git pour administrateurs
Remarque : cet article est en cours de rédaction. N'hésitez pas à le compléter. Veuillez utiliser la page de discussion ou un forum adéquat de Moodle en français pour vos recommandations et suggestions d'améliorations.
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_26_STABLE origin/MOODLE_26_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
- Lancer l'installation par l’intermédiaire d'un navigateur ou en ligne de commande, comme pour tout autre type d'installation : accès à la documentation sur l'installation
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_26_STABLE origin/MOODLE_26_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.
Si la branche désirée n'est pas listée dans les branches présentes dans votre dossier, utiliser les commandes suivantes pour mettre à jour.
- Aller dans le dossier Moodle :
cd /var/www/html/moodle/
- Vérifier les branches présentes dans votre dossier
git branch -a
- Si la branche désirée (p.ex. la branche MOODLE_26_STABLE) n'est pas présente dans la liste retournée, lancer
git pull git checkout MOODLE_26_STABLE
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