« Git pour administrateurs » : différence entre les versions

De MoodleDocs
Aller à :navigation, rechercher
m (Catégorie modifiée)
 
(16 versions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{Travail en cours}}{{Installation}}
{{Installation}}Cette page a pour but d'aider les ''administrateurs amateurs'' à installer et maintenir Moodle avec Git.
 
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.
Rappel : faites des sauvegardes (fichiers et BDD) avant de faire des modifications de vos installations.


== Quezaco ? ==
== 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.
'''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.
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 !
L'avantage par rapport au système FTP : c'est plus simple, plus sûr et plus rapide !


== Se connecter au serveur ==
== Se connecter au serveur ==
Vous pouvez utiliser GIT en ligne de commande, c'est le plus simple.
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.
Pour avoir accès en ligne de commande à votre serveur, il faut une liaison SSH.
Ligne 22 : Ligne 18 :
  ssh votre_nom@ip_du_serveur
  ssh votre_nom@ip_du_serveur


== Installer GIT ==
== Installer Git ==
Si GIT n'est pas disponible sur votre serveur, il faut l'installer.
Si Git n'est pas disponible sur votre serveur, il faut l'installer.
* Serveur type Debian / Ubuntu... (deb) :
* Serveur type Debian / Ubuntu... (deb) :
  sudo apt-get install git
  sudo apt-get install git
Ligne 29 : Ligne 25 :
  yum install git
  yum install git


== Première installation par GIT ==
== Première installation par Git ==
Pour utiliser GIT, il faut ouvrir les ports 9418 TCP & UDP de votre serveur. Puis :
L'exemple ci-dessous correspond à l'installation d'une version 3.5.X rattachée à la branche « MOODLE_35_STABLE ». Pour tout autre version, veuillez adapter la branche (par exemple 3.6.X => « MOODLE_36_STABLE »).
* Aller dans le répertoire parent :
 
cd /var/www/html/ (à adapter à votre serveur)
Pour utiliser Git, il faut ouvrir les ports 9418 TCP & UDP de votre serveur. Puis :
* Installer Moodle par GIT : le répertoire moodle sera créé et les fichiers téléchargés.
<pre>
git clone git://git.moodle.org/moodle.git
cd /var/www/html/                                               (1)
cd moodle
git clone git://git.moodle.org/moodle.git                       (2)
git branch -a
cd moodle
git checkout -b local_22_STABLE origin/MOODLE_22_STABLE (à adapter à la version désirée)
git branch --track MOODLE_35_STABLE origin/MOODLE_35_STABLE    (3)
git checkout MOODLE_35_STABLE                                  (4)
</pre>
* (1) On se place dans le répertoire parent (à adapter à votre serveur).
* (2) Installe Moodle via Git : le dossier ''moodle'' sera créé et les fichiers y seront téléchargés. L'opération dure plusieurs minutes, car la totalité de l'historique de Moodle est téléchargée.
* (3) Crée une branche locale appelée MOODLE_35_STABLE, qui pourra être synchronisée ultérieurement avec la branche MOODLE_35_STABLE du code source original.
* (4) Utilise la branche locale nouvellement créée.
 
La suite de l'installation se fait comme pour une installation habituelle :
* Copier le fichier de configuration modèle :
* Copier le fichier de configuration modèle :
cp config-dist.php config.php
<pre>
cp config-dist.php config.php
</pre>
* Modifier le fichier de configuration avec vos paramètres
* Modifier le fichier de configuration avec vos paramètres
nano config.php
<pre>
* Enregistrer et quitter le serveur :
nano config.php
exit
</pre>
* Enregistrer et quitter le serveur.
* Lancer l'installation par l’intermédiaire d'un navigateur ou en ligne de commande, comme pour tout autre type d'installation : [https://docs.moodle.org/all/fr/Installation_de_Moodle#Visiter_la_page_d.27administration_pour_poursuivre_l.27installation accès à la documentation sur l'installation]
* Lancer l'installation par l’intermédiaire d'un navigateur ou en ligne de commande, comme pour tout autre type d'installation : [https://docs.moodle.org/all/fr/Installation_de_Moodle#Visiter_la_page_d.27administration_pour_poursuivre_l.27installation accès à la documentation sur l'installation]


'''Nota :''' si vous voulez installer Moodle dans un dossier spécifique, utiliser cette commande au lieu de la commande (2) ci-dessus :
<pre>
git clone git://git.moodle.org/moodle.git mon_dossier
</pre>
=== Erreur de connexion ===
Si Git renvoie une erreur de connexion, par exemple
<pre>fatal: unable to connect to git.moodle.org:
git.moodle.org[0: 34.210.133.53]: errno=Connection refused</pre>
remplacer la commande <code bash>git clone git://git.moodle.org/moodle.git</code> par <code bash>git clone https://git.in.moodle.com/moodle/moodle.git</code>.
=== Git derrière un pare-feu (''firewall'') ===
Git utilise un protocole (SSH) utilisant un port qui est bloqué par certains pare-feu (port 9418). Si vous avez ce problème, utilisez l'adresse <code bash>https://git.in.moodle.com/moodle/moodle.git</code> au lieu de <code bash>git://git.moodle.org/moodle.git</code>. C'est cependant un peu plus lent, donc à n'utiliser que si nécessaire.
== 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.
Pour mettre à jour votre version de Moodle à la dernière version stable (branche stable MOODLE_39_STABLE), une fois connecté à votre serveur et placé dans le dossier contenant votre installation de Moodle, il suffit de lancer :
<pre>
$ cd /chemin/vers/votre/moodle/
$ git pull
</pre>
Sur un site en production, n'oubliez pas de faire des sauvegardes avant toute mise à jour.
Il reste à visiter la page de mise à jour avec un navigateur (page Notification), ou utiliser la ligne de commande adaptée.


'''Nota :''' si vous voulez installer Moodle dans un dossier spécifique :
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 (dans cet exemple, à la branche stable MOODLE_39_STABLE).
git clone git://git.moodle.org/moodle.git '''mon_dossier'''
<pre>
cd '''mon_dossier'''
$ cd /chemin/vers/votre/moodle/
git branch -a
$ git checkout MOODLE_39_STABLE
git checkout -b local_22_STABLE origin/MOODLE_22_STABLE (à adapter à la version désirée)
$ git pull
</pre>


== Mise à jour par GIT ==
Si vous ne voyez pas la branche souhaitée, il faudra lancer au préalable (une fois dans le dossier Moodle) les commandes Git suivantes :
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 :
<pre>
ssh votre_nom@ip_du_serveur
$ git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
* Aller dans le dossier Moodle :
$ git fetch origin
cd /var/www/html/moodle/
</pre>
* 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 ==
== 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.
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.
Pour cela, il faut tenir à jour un fichier qui liste les répertoires à ne pas superviser par Git.
* Se connecter au serveur :
* Se connecter au serveur :
  ssh votre_nom@ip_du_serveur
  ssh votre_nom@ip_du_serveur
Ligne 81 : Ligne 110 :
  exit
  exit


== Installation de plugins, thèmes ou code personnel par GIT ==
== 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.
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) :
N'oubliez pas de demander à Git de ne pas superviser les répertoires créés.
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


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) :
<pre>
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
</pre>


== Sécurité ==
== Sécurité ==
Ligne 127 : Ligne 157 :
  exit
  exit


[[Catégorie:Administration d'un site]]
[[Catégorie:Gestion d'un site Moodle]]
[[Catégorie:Installation]]
[[Catégorie:Installation]]
[[Catégorie:Git]]
[[Catégorie:Git]]

Dernière version du 18 août 2020 à 12:45

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

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ûr 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

L'exemple ci-dessous correspond à l'installation d'une version 3.5.X rattachée à la branche « MOODLE_35_STABLE ». Pour tout autre version, veuillez adapter la branche (par exemple 3.6.X => « MOODLE_36_STABLE »).

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

cd /var/www/html/                                               (1)
git clone git://git.moodle.org/moodle.git                       (2)
cd moodle
git branch --track MOODLE_35_STABLE origin/MOODLE_35_STABLE     (3)
git checkout MOODLE_35_STABLE                                   (4)
  • (1) On se place dans le répertoire parent (à adapter à votre serveur).
  • (2) Installe Moodle via Git : le dossier moodle sera créé et les fichiers y seront téléchargés. L'opération dure plusieurs minutes, car la totalité de l'historique de Moodle est téléchargée.
  • (3) Crée une branche locale appelée MOODLE_35_STABLE, qui pourra être synchronisée ultérieurement avec la branche MOODLE_35_STABLE du code source original.
  • (4) Utilise la branche locale nouvellement créée.

La suite de l'installation se fait comme pour une installation habituelle :

  • 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

Nota : si vous voulez installer Moodle dans un dossier spécifique, utiliser cette commande au lieu de la commande (2) ci-dessus :

git clone git://git.moodle.org/moodle.git mon_dossier

Erreur de connexion

Si Git renvoie une erreur de connexion, par exemple

fatal: unable to connect to git.moodle.org:
git.moodle.org[0: 34.210.133.53]: errno=Connection refused

remplacer la commande git clone git://git.moodle.org/moodle.git par git clone https://git.in.moodle.com/moodle/moodle.git.

Git derrière un pare-feu (firewall)

Git utilise un protocole (SSH) utilisant un port qui est bloqué par certains pare-feu (port 9418). Si vous avez ce problème, utilisez l'adresse https://git.in.moodle.com/moodle/moodle.git au lieu de git://git.moodle.org/moodle.git. C'est cependant un peu plus lent, donc à n'utiliser que si nécessaire.

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.

Pour mettre à jour votre version de Moodle à la dernière version stable (branche stable MOODLE_39_STABLE), une fois connecté à votre serveur et placé dans le dossier contenant votre installation de Moodle, il suffit de lancer :

$ cd /chemin/vers/votre/moodle/
$ git pull

Sur un site en production, n'oubliez pas de faire des sauvegardes avant toute mise à jour.

Il reste à 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 (dans cet exemple, à la branche stable MOODLE_39_STABLE).

$ cd /chemin/vers/votre/moodle/
$ git checkout MOODLE_39_STABLE
$ git pull

Si vous ne voyez pas la branche souhaitée, il faudra lancer au préalable (une fois dans le dossier Moodle) les commandes Git suivantes :

$ git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
$ git fetch origin

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