Comment mettre à jour GLPI ?

I. Présentation

Si vous déployez la solution GLPI dans votre entreprise, vous devez effectuer un suivi régulier des mises à jour. En effet, des mises à jour sont publiées régulièrement, et au-delà d'apporter de nouvelles fonctionnalités, certaines d'entres elles corrigent des failles de sécurité. Mais, alors, comment effectuer la mise à jour de GLPI ? Sachez que dans ce tutoriel, nous allons apprendre à mettre à jour GLPI !

Dans le cas présent, nous allons effectuer une mise à jour de GLPI 10.0.10 vers GLPI 10.0.12, qui justement, est une mise à jour de sécurité. Il s'agit de l'installation d'une mise à jour mineure, mais à chaque fois, les précautions à prendre sont identiques. Pour installer la version 10.0.14, qui est la dernière version en date, la procédure est identique.

Pour suivre les mises à jour de GLPI, vous pouvez consulter cette page :

Remarque : si vous envisagez d'effectuer une mise à jour majeure sur votre serveur GLPI, par exemple, pour passer de GLPI 9.5 à GLPI 10, vérifiez au préalable si les extensions que vous utilisez sont bien prises en charge par la nouvelle version. Si vous êtes dans ce cas, sachez que le plugin Fusion Inventory est pris en charge uniquement jusqu'à la version 10.0.3 de GLPI. Ensuite, vous devez passer sur l'agent GLPI officiel, qui est un fort de Fusion Inventory.

II. Quelle est ma version de GLPI ?

Pour savoir quelle version de GLPI vous utilisez, vous devez vous connecter sur l'interface Web de GLPI, puis cliquez sur votre avatar en haut à droite. Dans le menu qui apparaît, cliquez sur "À propos". Une fenêtre va apparaître et elle indique explicitement la version de GLPI que vous utilisez. Avant la version 10 de GLPI, la version était indiquée en bas à droite de la fenêtre.

Afficher la version de GLPI

III. Activer le mode maintenance de GLPI

GLPI 10 intègre un mode maintenance que vous pouvez activer avant d'effectuer la mise à jour. Ceci évite que les utilisateurs ou les techniciens cherchent à utiliser GLPI pendant cette période.

A partir de la ligne de commande de votre serveur GLPI, positionnez-vous dans le répertoire d'installer de GLPI (ici "/var/www/glpi") et exécutez la commande suivante :

cd /var/www/glpi
sudo php bin/console glpi:maintenance:enable

Si vous retournez sur GLPI, en mode web, vous allez obtenir ce message :

GLPI - Mode maintenance

Même si le mode maintenance est actif, vous pouvez accéder à GLPI en précisant ceci dans l'URL :

https://support.it-connect.tech/index.php?skipMaintenance=1

Une fois la mise à jour effectuée, nous verrons comment désactiver ce mode maintenance.

IV. Sauvegarder les données

Avant de mettre à jour GLPI, vous devez impérativement sauvegarder vos données. S'il s'agit d'une machine virtuelle, vous pouvez utiliser votre outil de sauvegarde habituelle pour déclencher une sauvegarde avant de procéder à la mise à jour GLPI. Par ailleurs, si c'est une machine virtuelle, vous pouvez aussi utiliser un snapshot pour revenir en arrière facilement.

En complément, suivez les étapes ci-dessous, car ceci fait partie du processus de mise à jour de GLPI (notamment pour les données). En local sur le serveur GLPI, nous allons pouvoir sauvegarder les données et la base de données de l'application.

A. Sauvegarder la base de données

Pour commencer, nous allons sauvegarder la base de données de GLPI à l'aide de l'utilitaire mysqldump. Il est inclus nativement avec MySQL, et MariaDB.

Vous devez vous connecter à votre serveur et ouvrir une console en ligne de commande. Pour ma part, il s'agit d'un serveur sous Linux, donc la connexion est établie en SSH.

Si vous ne vous souvenez plus du nom de votre base de données, connectez-vous à votre instance MySQL :

mysql -u root -p

Indiquez le mot de passe root de MySQL. Puis, listez les bases de données :

show databases;

Pour ma part, la base de données s'appelle "db23_glpi". Désormais, nous allons sauvegarder cette base de données.

La commande ci-dessous permet de se connecter à l'instance MySQL en tant que root (vous pouvez, en principe, utiliser le compte utilisateur dédié à GLPI si vous en avez créé un) pour effectuer la sauvegarde de la base de données "db23_glpi". En sortie, cette sauvegarde donnera lieu au fichier "/home/glpi_adm/backup_db23_glpi.sql" (soit dans le "/home" de l'utilisateur avec lequel je suis connecté sur le serveur).

mysqldump -u root -p --databases db23_glpi > /home/glpi_adm/backup_db23_glpi.sql

La sauvegarde sera plus ou moins longue en fonction de la quantité d'informations stockées dans votre base de données.

Vérifiez que le fichier de sauvegarde a bien été créé :

Sauvegarde base de données GLPI

B. Sauvegarder les données

Dans les fichiers de GLPI, au-delà des scripts PHP et d'autres fichiers relatifs au bon fonctionnement de l'application en elle-même, il y a aussi vos données.

En effet, le répertoire "files" contient les documents ajoutés en tant que pièce jointe dans les tickets, tandis que le répertoire "plugins" contient les extensions que vous avez ajoutées à votre GLPI. En complément, les répertoires "config" et "marketplace" sont également importants.

sudo cp -Rf /var/www/glpi/ /home/glpi_adm/backup_glpi

Par précaution, vérifiez que les répertoires suivants soient bien présents (et qu'ils ne sont pas vides) : files, plugins, config et marketplace. Les fichiers "config_db.php" et "glpicrypt.key" du répertoire "config" sont particulièrement précieux.

ls -l /home/glpi_adm/backup_glpi/

V. Mettre à jour GLPI

A. Supprimer la version actuelle

Nous n'allons pas altérer la base de données de GLPI, mais nous allons supprimer le répertoire de la version actuelle. Par exemple, si votre GLPI est installé dans le répertoire "/var/www/glpi/" du serveur Web, c'est ce dossier que vous devez supprimer. Ceci permet de laisser la place libre pour la future version de GLPI.

Voici la commande à exécuter :

sudo rm -Rf /var/www/glpi/

B. Télécharger GLPI

À partir du GitHub officiel de GLPI, vous devez copier le lien de l'archive tar.gz correspondante à la version que vous souhaitez installer. Dans cet exemple, c'est la version 10.0.12 qui sera installée.

Puis, à partir de la ligne de commande, initiez le téléchargement avec la commande wget :

cd /tmp
wget https://github.com/glpi-project/glpi/releases/download/10.0.12/glpi-10.0.12.tgz

Une fois que c'est fait, décompressez l'archive tar.gz :

tar -xzvf glpi-10.0.12.tgz

Une fois l'archive décompressée, vous obtenez un dossier nommé "glpi" qui contient l'ensemble des fichiers de cette nouvelle version.

Vous devez déplacer ce dossier vers la racine de votre site web GLPI. Pour ma part, ceci revient à déplacer le dossier "glpi" vers "/var/www/glpi". Ce qui donne :

sudo mv glpi /var/www/glpi

Quand c'est fait, vous pouvez passer à la suite.

C. Récupérer vos données

La prochaine étape consiste à récupérer vos données. Vous savez celles contenues dans les répertoires "files", "plugins", "config" et "marketplace". Ainsi, nous allons récupérer ces dossiers à partir de "/home/glpi_adm/backup_glpi/" (emplacement de la sauvegarde créée précédemment) vers le répertoire "/var/www/glpi/".

Voici les commandes à exécuter :

sudo cp -Rf /home/glpi_adm/backup_glpi/files /var/www/glpi/
sudo cp -Rf /home/glpi_adm/backup_glpi/plugins /var/www/glpi/
sudo cp -Rf /home/glpi_adm/backup_glpi/config /var/www/glpi/
sudo cp -Rf /home/glpi_adm/backup_glpi/marketplace /var/www/glpi/

Puis, nous allons modifier les permissions sur les données du répertoire "/var/www/glpi" pour que l'utilisateur "www-data", utilisé par Apache2, soit propriétaire :

sudo chown -R www-data:www-data /var/www/glpi/

D. Effectuer la mise à jour de la base de données GLPI

Voilà, vous y êtes ! C'est le moment de mettre à jour GLPI ! Enfin, la base de données, car en soi la mise à jour des fichiers est déjà effectuée !

Si vous accédez à l'interface de votre GLPI, vous allez tomber sur une page qui liste l'ensemble des prérequis et à la fin de cette page, il y a un bouton nommé "Upgrade" qui permet de déclencher la mise à jour.

GLPI - Bouton Upgrade pour effectuer mise à jour

Mais, l'éditeur de GLPI recommande plutôt d'effectuer la mise à jour à partir de la ligne de commande. Pour cela, vous devez continuer à utiliser la console de votre serveur (via une connexion SSH, par exemple).

Commencez par exécuter la commande ci-dessous pour vérifier les prérequis :

cd /var/www/glpi
sudo php bin/console glpi:system:check_requirements

Ceci permet de s'assurer que votre serveur dispose bien de tous les prérequis nécessaires pour accueillir GLPI. En principe, ce sera le cas, car GLPI était déjà installé. Dans la console, nous avons un statut pour chaque prérequis (comme en mode web).

GLPI - Vérifier les prérequis en ligne de commande

Si tout est bon, vous pouvez lancer la mise à jour de la base de données GLPI avec cette commande :

sudo php bin/console db:update

Laissez-vous guider par la ligne de commande et vous devrez répondre à une ou deux questions par "yes" ou "no". Voici un exemple sur mon serveur :

Mise à jour de GLPI en ligne de commande

Quelques secondes plus tard, la mise à jour est effectuée ! La console retourne le message "Migration effectuée" en vert, ce qui est plutôt positif. Connectez-vous à votre GLPI pour vérifier que tout fonctionne.

La mise à niveau étant terminée, vous devez supprimer ce fichier par sécurité :

sudo rm /var/www/glpi/install/install.php

Si vous utilisez des plugins, vous devez également vérifier leur état et éventuellement les mettre à jour (si nécessaire) à partir du menu "Configuration" puis "Plugins", ou via la Marketplace si vous l'avez activée.

Enfin, vous pouvez désactiver le mode maintenance de GLPI :

cd /var/www/glpi
sudo php bin/console glpi:maintenance:disable

GLPI a été correctement mis à jour de la version 10.0.10 à la version 10.0.12 :

GLPI - Mise à jour effectuée avec succès

VI. Conclusion

En suivant minutieusement cette procédure, vous devriez être en mesure de mettre à jour l'application GLPI sur votre serveur, que ce soit pour installer une version mineure ou une version majeure. Personnellement, j'ai utilisé cette méthode pendant plusieurs années et je suis toujours parvenu à mettre à jour l'application.

N'hésitez pas à laisser un commentaire sur cet article si vous avez une question ou si vous souhaitez apporter des précisions supplémentaires.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian BURNEL

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

Nombre de posts de cet auteur : 5580.Voir tous les posts

11 thoughts on “Comment mettre à jour GLPI ?

  • Bonjour,

    J’ai suivi le tuto de l’installation de l’agent GLPI à la lettre, et ça ne fonctionne pas, les machines ne remontent pas. J’ai même utilisé la façon avec msiexec.exe et bien que l’agent s’installe sur la machine, il n’y a rien qui remonte, même en forçant l’inventaire. Et sur GLPI il ne m’indique toujours aucun agent et aucun PC ne remonte. Je n’arrive pas à comprendre…. J’ai fait une installation à la main également sur une machine test pour voir comme se passe l’installation et toujours rien… J’utilise pourtant le bon lien de serveur, est-ce qu’il y aurait des droits supplémentaires à rajouter sur le fichier inventory.php ? Car si je clique sur le lien mis sur SERVER, il m’affiche : Cette page ne fonctionne pas. Alors est-ce que c’est normal ou pas ?

    Je souhaite donner une précision, j’ai pu par la suite voir qu’il fallait installer le plugin GLPI Inventory, ce qui n’est pas indiqué sur le tuto. J’ai également fait la mise à jour de GLPI 10.0.12 vers la version GLPI 10.0.14. Mais malgré cela ça les machines ne remonte pas.

    Est-ce que vous aurez une idée ?

    J’utilise GLPI 10.0.14 avec PHP 8.3, la version 1.17.1 de GLPI Agent et la version 1.3.15 de GLPI Inventory. GLPI est installé sur un serveur IIS sous Windows Server 2016 et MariaDB pour la base de données.

    Je vous en remercie par avance.

    Répondre
    • Bonjour Dav,

      As tu un message lorsque que tu lances l’agent manuellement depuis ton client ?
      Lors de l’installation de l’agent sur ton client, as tu vérifié que le service est lancé ? (pour ma part il ne ce lançait automatiquement sans que je le lance une première fois manuellement) Mais tout cela dépend du message que tu as lorsque tu fait un check depuis ton navigateur localhost:tonportpersonaliser ou par défaut localhost:62354 ?

      dans l’attente de lire la suite

      Répondre
  • Je sais que ce n’est pas le bon tuto, pour parlé de cette problèmatique, mais je me permet de le remettre ici, car je n’ai pas eu de réponse. J’espère que sur ce nouveau post j’aurai plus de chance.

    Je vous en remercie par avance.

    Répondre
  • Bonjour,

    Merci pour le tuto. Cependant, dans mon lab, j’ai mis GLPI sur un OS Windows Server 2019, sous Xampp. La procédure de mise à jour se passe comment dans ce cas?

    Je vous remercie!

    Répondre
    • Pourquoi ne pas avoir mis glpi sur un serveur Linux c’est tellement plus logique ?

      Répondre
      • Bonjour,
        Je sais que Linux est plus logique, néanmoins c’est une contrainte de mon atelier en formation…

        Répondre
    • Bonjour,
      La logique reste la même, mais il faut adapter à l’environnement au niveau des chemins, etc… Mais sinon, ce sont les mêmes étapes.

      Répondre
  • Moi j’ai un plus gros défi ! Mettre un jour un GLPI 9 vers 10 ou tout du moins récupérer les données je suis preneur ! @seb2c on insta

    Répondre
  • Bonjour,

    Très bon tuto (like usual) mais si je peux me permettre, teclin recommandé de déplacer les dossiers files et config (voir leur tuto). Ça sécurise glpi et surtout ça évite de devoir copier ces dossiers a chaque MAJ.
    Perso je suis utilisateur de glpi depuis plus de 15ans, je suis sur un glpi cloud depuis 4 moi et c’est trop bien lol !!!

    Répondre
    • Salut Sylvain
      J’ai un GLPI 10.0.12 sous debian, et je n’ai pas les répertoires FILES et CONFIG …
      Où peuvent-ils bien être ?

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.