Comment mettre à jour GLPI ?
Sommaire
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.
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 :
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éé :
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.
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).
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 :
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 :
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.
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.
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
que disent les logs de l’agent? vu que tu est sous windows, il se peut que tes agents utilisent des clefs de la base de registre à la place du fichier agent.cfg. j ai déja eu cette erreur (qui nn en est pas une)
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.
Merci bcp,
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!
Pourquoi ne pas avoir mis glpi sur un serveur Linux c’est tellement plus logique ?
Bonjour,
Je sais que Linux est plus logique, néanmoins c’est une contrainte de mon atelier en formation…
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.
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
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 !!!
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 ?
Pour ma part le dossier config est dans /etc/glpi. Mais même en ayant rentré la commande pour importer le dossier config et les fichiers dans /var/www/glpi cela ne marche pas non plus. Je pars de la version 10.0.14 et Debian aussi
Bonjour,
Si on installe en suivant le tuto Teclib à la lettre, en effet, le répertoire files est placé en /var/lib ; et la config est en /etc/glpi. Mais pour cela on ajoute un fichier inc/downstream.php
Si donc vous avez suivi les instructions de Teclib pour l’installation, il faut ajouter une ligne au tuto de Florian, dans C – récupérer les données :
sudo cp -Rf backup_glpi/inc/downstream.php /var/www/html/glpi/inc/
erratum, la commande est dans mon contexte ; pour coller au tuto ci-dessus c’est :
sudo cp -Rf /home/glpi_adm/backup_glpi/inc/downstream.php /var/www/glpi/inc
erratum : la dernière commande n’est pas dans le contexte de ce tuto, c’est plutôt ceci :
sudo cp -Rf /home/glpi_adm/backup_glpi/inc/downstream.php /var/www/glpi/inc/
Bonjour,
Si on installe en suivant le tuto Teclib à la lettre, en effet, le répertoire files est placé en /var/lib ; et la config est en /etc/glpi. Mais pour cela on ajoute un fichier inc/downstream.php
Si donc vous avez suivi les instructions de Teclib pour l’installation, il faut ajouter une ligne au tuto de Florian, dans C – récupérer les données :
sudo cp -Rf /home/glpi_adm/backup_glpi/inc/downstream.php /var/www/glpi/inc
(mon autre comment est erroné sur cette commande)
Bonjour,
SElinux doit être désactivé temporairement pour la mise à jour sinon il bloque l’écriture des dossiers précédemment sauvegardé (config, file, plugin etc…)
Désactivation :
sed -i s/^SELINUX=.*$/SELINUX=disabled/ /etc/selinux/config
reboot
Check :
getenforce
Le résultat doit être « disable »
et donc en toute dernière tâche (une fois la mise à jour effectué avec succès et le mode sortie du mode maintenance il faut le réactiver :
Réactivation de SELinux :
sed -i s/^SELINUX=.*$/SELINUX=enforcing/ /etc/selinux/config
reboot
Check :
getenforce
Le résultat doit être « enforcing »
bonjour j’ai voulu passer glpi de la version 10.0.0 à la version 10.0.15 cependant dans l’entreprise où je suis en stage, personne ne sais comment se connecter a la bdd du glpi de test, je ne fait donc pas les étapes pour la base de données et a la fin je me retrouve avec pas mal d’erreur qui ne touche pas que la base de données, par exemple j’ai une erreur qui me conseille de prendre comme racine pour glpi le dossier /var/www/glpi/public
Comment je pourrait corriger ça? pourquoi il refuse de garder /var/www/glpi en racine ? et surtout enregistrer la base donnees sans la rappeler après, comment c’est utile et pourquoi?
Merci beaucoup
/var/www/glpi/
Correction :
/var/www/html/glpi/
Bordel cette faute de frappe moisie a tout fait foirer, un grand bravo à l’artiste qui a pondu ce machin mal foutu
Bonjour,
Je dirais surtout que c’est ce qui arrive quand on fait bêtement un copier-coller des lignes de code… Le tuto est correct puisque le GLPI est installé dans « /var/www/glpi/ » dans cet exemple, qui fait d’ailleurs suite à celui sur l’installation de GLPI. Donc, non, ce n’est pas un problème de relecture de ma part…
Bonne journée.
Florian
Je comprends votre réponse, mais pour moi vous avez pris un cas complétement tordu qui ne correspond pas avec la grand majorité des installations. Vous avez raison, ok mais votre tutoriel devrait se baser sur les cas les plus courants. Je ne vois pas l’intérêt de glisser des pièges, on peut très bien être mal réveillé ou ne pas avoir la présence d’esprit de se dire qu’il faut tout vérifier car peut être l’auteur a fait son tutoriel sur un cas de figure ulta spécifique. MErci quand même et désolé pour la critique, comprenez que c’est toujours embêtant de perdre 1 heure de travail pour ce genre de détail.
Je ne partage pas du tout vos remarques. J’ai installé il y a 2 ans mon serveur GLPI à partir de la doc de Florian, sans problème, c’était clair et précis et fonctionnel du premier coup. Ensuite cette mise à jour a forcément immédiatement fonctionné. je ne comprends pas vos remarques sachant qu’en tant qu’informaticien vous devez être en capacité d’adapter vos actions à votre installation et ne pas bêtement recopier. Je ne connais pas du tout Florian, mais ses tutos sont toujours clairs et j’ai eu le plaisir d’avoir une réponse par mail sur une spécificité justement sur les GPO, alors que je n’y croyais pas à la réponse.
Donc: merci Florian.
Si vous avez installé dans /var/www/html/glpi cela veut surtout dire que vous avez installé GLPI dans le dossier du site web par défaut d’Apache. Florian l’a à juste titre installé dans /var/www/glpi et a sans doute configuré correctement son Virtualhost. Je vous invite donc à revoir les bases de la configuration d’Apache avant de critiquer le travail de Florian.
Bonjour Florian,
dans le tuto précédent tu as installé les dossier ‘config’, ‘files’ et ‘log’ dans des répertoires différents :
https://www.it-connect.fr/installation-pas-a-pas-de-glpi-10-sur-debian-12/
Il aurait été intéressant de retrouver la même logique ici surtout que le lien en bas de page du tuto précédent pointe ici.
Sinon, comme toujours, c’est très bien expliqué et clair.
Merci à toi
Bonjour Florian,
Tes tutos sont toujours sympa 🙂
Concernant GLPI, perso je fais ceci en tache planifiée sur l »hote debian de glpi, toutes les semaines, histoire d’avoir toujours à dispo la dernière version de Glpi, en local dans mon dossier racine et sans forcément le déployer car des fois ça « dérape » avec les plugins :p
==
#!/bin/bash
# Récupérer le contenu de la page GLPI
page_content=$(curl -s https://glpi-project.org/downloads/)
# Extraire le numéro de version via une expression régulière
version=$(echo « $page_content » | grep -oPi ‘GLPI VERSION \K\d{1,3}(\.\d+){2,4}’)
# Afficher le numéro de version (histoire de se rassurer au début lol)
echo « Numéro de version GLPI trouvé : $version »
# Télécharger le fichier .tgz
if [ -n « $version » ]; then
filename= »glpi-$version.tgz »
download_link= »https://github.com/glpi-project/glpi/releases/download/$version/$filename »
echo « Téléchargement du fichier $filename … »
wget -O /var/www/html/glpi.tgz « $download_link »
else
echo « Numéro de version GLPI non trouvé. »
fi
==
Rien d’exceptionnel mais si l’idée te plait et si ça peut aider des novices…
Autrement bah… c’est l’intention qui compte 🙂