Avant de commencer
- Une machine virtuelle ou un serveur Debian 13 à jour, avec un accès root ou sudo
- Un nom DNS pour le service, par exemple support.exemple.lan
- Les bases de la ligne de commande Linux (voir les commandes Linux pour débuter)
En clair
GLPI, c'est à la fois le carnet de santé du parc informatique et le guichet du service informatique. Le carnet de santé liste chaque ordinateur, écran, imprimante, logiciel et contrat, avec son historique. Le guichet reçoit les demandes des utilisateurs sous forme de tickets, les attribue à un technicien et garde la trace de ce qui a été fait. Les deux sont liés : quand quelqu'un signale une panne, on voit tout de suite de quelle machine il s'agit.
1. GLPI en bref
GLPI (Gestionnaire Libre de Parc Informatique) est un logiciel libre (licence GPLv3) développé par la société française Teclib'. Il couvre :
| Module | Ce qu'il fait |
|---|---|
| Parc | Inventaire des ordinateurs, serveurs, réseau, téléphones, imprimantes, logiciels et licences |
| Assistance | Tickets (incidents et demandes), problèmes, changements, délais de traitement (SLA), satisfaction |
| Gestion | Contrats, fournisseurs, budgets, documents, cycle de vie du matériel |
| Outils | Base de connaissances, projets, réservations de matériel, rappels |
| Inventaire automatique | Remontée des machines par l'agent GLPI, intégré nativement depuis GLPI 10 |
Quelle version ? Au 20 octobre 2026 :
- GLPI 11.0 est la branche stable à installer (11.0.11 publiée le 1er octobre 2026 ; évitez 11.0.10, remplacée pour une régression).
- GLPI 10.0.28 est la dernière version de la branche 10 : elle ne recevra plus de correctifs une fois GLPI 12 publié. Si vous êtes encore en 10, planifiez la montée de version.
- GLPI 12 est en version candidate depuis septembre 2026, avec notamment une base de connaissances remaniée, un gestionnaire de sessions et un mode « sudo » pour les actions sensibles. Attendez la version stable et ses premiers correctifs avant de l'utiliser en production.
Vérifiez la dernière version
Consultez la page des versions de GLPI avant de commencer, et utilisez la plus récente de la branche 11.0. Les mises à jour de sécurité sont fréquentes.
2. Ce qu'on va construire
| Élément | Choix | Pourquoi |
|---|---|---|
| Système | Debian 13 | Stable, PHP 8.4 et MariaDB 11.8 dans les dépôts officiels |
| Serveur web | Apache avec PHP-FPM | Configuration documentée par GLPI, PHP séparé du serveur web |
| Base de données | MariaDB | GLPI 11 exige MySQL 8.0 ou MariaDB 10.6 au minimum |
| Emplacement des fichiers | Code dans /var/www/glpi, configuration dans /etc/glpi, données dans /var/lib/glpi, journaux dans /var/log/glpi |
Les fichiers sensibles ne sont jamais accessibles depuis le web |
| Accès | https://support.exemple.lan |
Un nom dédié, en HTTPS |
Dimensionnement de départ pour quelques centaines de machines : 2 vCPU, 4 Go de RAM, 30 Go de disque. Augmentez la RAM et le disque si vous stockez beaucoup de pièces jointes ou si le parc dépasse quelques milliers d'appareils.
Exposition sur Internet
GLPI contient l'inventaire complet du parc et des échanges parfois confidentiels. Laissez-le sur le réseau interne ou derrière un VPN. Si des utilisateurs extérieurs doivent y accéder, passez par un proxy inverse avec HTTPS, la double authentification activée, et appliquez chaque mise à jour de sécurité sans attendre.
3. Installer les paquets
Mettez le système à jour, puis installez Apache, PHP-FPM, MariaDB et les extensions PHP demandées par GLPI 11 :
sudo apt update && sudo apt full-upgrade -y
sudo apt install -y apache2 mariadb-server php8.4-fpm \
php8.4-curl php8.4-gd php8.4-intl php8.4-mysql php8.4-zip \
php8.4-bcmath php8.4-mbstring php8.4-xml php8.4-bz2 php8.4-ldap
L'extension php8.4-ldap n'est utile que pour l'authentification par Active Directory ou un annuaire LDAP, mais elle évite de revenir installer un paquet plus tard. Vérifiez la version de PHP :
php -v
4. Préparer la base de données
Sécurisez MariaDB (mot de passe root, suppression des comptes anonymes et de la base de test) :
sudo mariadb-secure-installation
Chargez les fuseaux horaires dans MariaDB. GLPI s'en sert pour afficher les dates selon le fuseau de chaque utilisateur :
mariadb-tzinfo-to-sql /usr/share/zoneinfo | sudo mariadb mysql
sudo systemctl restart mariadb
Créez la base et un compte dédié, qui n'a des droits que sur cette base. Remplacez le mot de passe par une valeur longue et unique, conservée dans votre gestionnaire de mots de passe :
sudo mariadb
CREATE DATABASE glpi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'glpi'@'localhost' IDENTIFIED BY 'MotDePasseLongEtUnique';
GRANT ALL PRIVILEGES ON glpi.* TO 'glpi'@'localhost';
GRANT SELECT ON mysql.time_zone_name TO 'glpi'@'localhost';
FLUSH PRIVILEGES;
EXIT;
5. Télécharger GLPI
Placez le numéro de la dernière version dans une variable, téléchargez l'archive officielle et décompressez-la :
VERSION=11.0.11
cd /tmp
wget "https://github.com/glpi-project/glpi/releases/download/\
${VERSION}/glpi-${VERSION}.tgz"
sudo tar -xzf glpi-${VERSION}.tgz -C /var/www/
Le dossier /var/www/glpi est créé.
6. Sortir les fichiers sensibles du dossier web
Par défaut, la configuration (identifiants de la base, clé de chiffrement) et les données (pièces jointes, sessions) sont dans le dossier de l'application. On les déplace vers les emplacements standard de Linux, comme le recommande la documentation de GLPI.
Déplacez la configuration, les données et créez le dossier des journaux :
sudo mv /var/www/glpi/config /etc/glpi
sudo mkdir -p /var/lib/glpi
sudo mv /var/www/glpi/files /var/lib/glpi/
sudo mkdir -p /var/log/glpi
Indiquez à GLPI où se trouve sa configuration, avec le fichier /var/www/glpi/inc/downstream.php :
sudo tee /var/www/glpi/inc/downstream.php > /dev/null <<'EOF'
<?php
define('GLPI_CONFIG_DIR', '/etc/glpi/');
if (file_exists(GLPI_CONFIG_DIR . '/local_define.php')) {
require_once GLPI_CONFIG_DIR . '/local_define.php';
}
EOF
Puis indiquez l'emplacement des données et des journaux dans /etc/glpi/local_define.php :
sudo tee /etc/glpi/local_define.php > /dev/null <<'EOF'
<?php
define('GLPI_VAR_DIR', '/var/lib/glpi/files');
define('GLPI_LOG_DIR', '/var/log/glpi');
EOF
Appliquez les droits selon le moindre privilège : le code appartient à root et n'est pas modifiable par le serveur web, seuls les dossiers qui doivent être écrits appartiennent à www-data (le compte d'Apache et de PHP-FPM) :
sudo chown -R root:root /var/www/glpi
sudo chown -R www-data:www-data /var/www/glpi/marketplace
sudo chown -R www-data:www-data /etc/glpi /var/lib/glpi /var/log/glpi
sudo chmod 750 /etc/glpi /var/lib/glpi /var/log/glpi
Le dossier marketplace reste modifiable pour pouvoir installer des extensions depuis l'interface de GLPI.
7. Configurer Apache
Créez l'hôte virtuel /etc/apache2/sites-available/glpi.conf. Seul le dossier public est servi : le reste de l'application n'est pas accessible depuis le navigateur.
<VirtualHost *:80>
ServerName support.exemple.lan
DocumentRoot /var/www/glpi/public
<Directory /var/www/glpi/public>
Require all granted
RewriteEngine On
# Transmet l'en-tête d'autorisation (API, inventaire)
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Toutes les adresses passent par le routeur de GLPI
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.4-fpm.sock|fcgi://localhost/"
</FilesMatch>
ErrorLog ${APACHE_LOG_DIR}/glpi-error.log
CustomLog ${APACHE_LOG_DIR}/glpi-access.log combined
</VirtualHost>
Activez le site et les modules, désactivez le site par défaut, puis vérifiez la syntaxe avant de recharger :
sudo a2enmod rewrite proxy_fcgi setenvif
sudo a2enconf php8.4-fpm
sudo a2ensite glpi.conf
sudo a2dissite 000-default.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
La commande configtest doit répondre Syntax OK.
8. Régler PHP
Les réglages se font dans le fichier de PHP-FPM, /etc/php/8.4/fpm/php.ini (et non celui d'Apache, inutilisé ici). Modifiez ou ajoutez ces lignes :
session.cookie_httponly = On
session.cookie_samesite = Lax
upload_max_filesize = 20M
post_max_size = 20M
memory_limit = 256M
date.timezone = Europe/Paris
Redémarrez PHP-FPM :
sudo systemctl restart php8.4-fpm
session.cookie_secure = On s'ajoutera à l'étape HTTPS : l'activer avant empêcherait toute connexion en HTTP.
9. Installer GLPI
Deux méthodes, au choix.
Par le navigateur. Ouvrez http://support.exemple.lan, choisissez la langue, acceptez la licence, puis Installer. GLPI vérifie les prérequis : tout doit être vert, les avertissements orange sont à lire. Indiquez ensuite localhost, l'utilisateur glpi et son mot de passe, sélectionnez la base glpi et laissez l'initialisation se terminer.
En ligne de commande, plus rapide et reproductible. La commande s'exécute avec le compte www-data, et -p sans valeur demande le mot de passe sans le laisser dans l'historique :
cd /var/www/glpi
sudo -u www-data php bin/console db:install \
-H localhost -d glpi -u glpi -p -L fr_FR
Vérifiez ensuite que tous les prérequis sont remplis :
sudo -u www-data php bin/console glpi:system:check_requirements
10. Sécuriser juste après l'installation
GLPI crée quatre comptes par défaut, aux mots de passe connus de tous (glpi/glpi, tech/tech, normal/normal, post-only/postonly) :
| Compte | Profil | Action |
|---|---|---|
glpi |
Super-Admin | Changer le mot de passe immédiatement, puis le réserver aux urgences |
tech |
Technicien | Désactiver ou supprimer |
normal |
Utilisateur | Désactiver ou supprimer |
post-only |
Demandeur simple | Désactiver ou supprimer |
- Connectez-vous avec
glpi, changez son mot de passe, et créez votre propre compte administrateur nominatif, par exemplespo. - Désactivez les comptes
tech,normaletpost-onlydans Administration > Utilisateurs. -
Supprimez le programme d'installation, qui ne doit plus être accessible :
sudo rm /var/www/glpi/install/install.php -
Désactivez les données de démonstration proposées sur le tableau de bord.
- Activez la double authentification pour les comptes administrateurs (GLPI 11 intègre l'authentification par code TOTP, voir la double authentification).
-
Une fois l'installation terminée, rendez la configuration non modifiable par le serveur web :
sudo chown -R root:www-data /etc/glpi && sudo chmod -R g-w /etc/glpi
La clé de chiffrement
Le fichier /etc/glpi/glpicrypt.key chiffre les mots de passe stockés par GLPI (comptes de messagerie, annuaires LDAP). Sans lui, une restauration de la base est inutilisable pour ces éléments. Il doit faire partie de chaque sauvegarde, et ne doit jamais être publié.
11. Activer les actions automatiques
GLPI a des tâches de fond : envoi des notifications, relève des courriels, calcul des délais, nettoyage. Par défaut, elles sont déclenchées par les visites des utilisateurs, ce qui est peu fiable. Faites-les exécuter chaque minute par le système, avec le compte du serveur web :
echo '* * * * * www-data /usr/bin/php /var/www/glpi/front/cron.php' \
| sudo tee /etc/cron.d/glpi
Dans GLPI, ouvrez ensuite Configuration > Actions automatiques et passez les tâches en mode CLI. Vérifiez au bout de quelques minutes que la colonne « Dernière exécution » se met à jour.
12. Passer en HTTPS
Les identifiants et les tickets ne doivent pas circuler en clair.
- Réseau interne : utilisez un certificat émis par l'autorité de certification de l'entreprise (par exemple AD CS) ou par une autorité interne comme step-ca.
- Nom public : un certificat Let's Encrypt via
certbot(paquetpython3-certbot-apache) convient.
Ajoutez un hôte virtuel sur le port 443 avec SSLEngine on et les chemins du certificat (module ssl, sudo a2enmod ssl), et faites rediriger le port 80 vers HTTPS. Puis :
- Ajoutez
session.cookie_secure = Ondans/etc/php/8.4/fpm/php.iniet redémarrez PHP-FPM. - Dans Configuration > Générale, mettez à jour l'URL de l'application avec
https://support.exemple.lan: elle sert dans les liens des notifications.
13. Remonter l'inventaire avec l'agent GLPI
Activez d'abord l'inventaire dans Administration > Inventaire, case Activer l'inventaire.
Téléchargez l'agent depuis la page des versions de GLPI Agent, puis installez-le sur les postes.
Windows, installation silencieuse depuis l'invite de commandes (pas PowerShell, qui peut gêner le passage des paramètres), en remplaçant le nom du fichier par celui de la version téléchargée :
msiexec /i GLPI-Agent-x.y-x64.msi /quiet ^
SERVER=https://support.exemple.lan/front/inventory.php RUNNOW=1
Pour un parc, déployez ce même MSI par stratégie de groupe, Intune ou votre outil de déploiement habituel.
Linux, avec le script d'installation fourni sur la même page :
sudo perl glpi-agent-x.y-linux-installer.pl \
--server=https://support.exemple.lan/front/inventory.php --runnow
Les machines apparaissent dans Parc > Ordinateurs après la première remontée. L'agent sait aussi découvrir le réseau et interroger les équipements en SNMP (switchs, imprimantes) : ces tâches se configurent ensuite dans le même menu d'inventaire.
14. Premiers réglages
Dans l'ordre, pour partir sur une base propre :
- Entités : si vous gérez plusieurs sociétés ou sites étanches, créez une entité par périmètre avant d'importer quoi que ce soit. Sinon, gardez l'entité racine.
- Authentification : branchez Active Directory ou l'annuaire LDAP dans Configuration > Authentification > Annuaires LDAP pour que les utilisateurs se connectent avec leur compte habituel. Utilisez LDAPS (port 636) et un compte de service en lecture seule.
- Profils : partez des profils existants (Self-Service, Technicien, Supervisor, Admin) et ajustez les droits plutôt que d'en créer de zéro.
- Catégories de tickets : une dizaine au départ (Poste de travail, Messagerie, Imprimante, Accès et comptes, Réseau, Logiciel…). Trop de catégories découragent les demandeurs.
- Collecteur de courriels : dans Configuration > Collecteurs, une adresse comme
support@exemple.frtransforme chaque message reçu en ticket. - Notifications : configurez l'envoi SMTP dans Configuration > Notifications, puis ne gardez que les notifications utiles.
- Délais (SLA) : définissez des délais de prise en charge et de résolution réalistes, et associez-les aux catégories.
- Base de connaissances : publiez les réponses aux questions fréquentes, visibles des utilisateurs depuis l'interface simplifiée. Pour une documentation interne plus riche, voir les bases de connaissances et wikis.
15. Sauvegarder
Trois éléments sont indispensables : la base, les données et la configuration. Exemple de script, à planifier chaque nuit :
#!/bin/bash
# /usr/local/sbin/sauvegarde-glpi.sh
set -euo pipefail
DEST=/var/backups/glpi
JOUR=$(date +%F)
mkdir -p "$DEST"
mariadb-dump --single-transaction glpi | gzip > "$DEST/glpi-base-$JOUR.sql.gz"
tar -czf "$DEST/glpi-fichiers-$JOUR.tar.gz" /etc/glpi /var/lib/glpi
find "$DEST" -type f -mtime +14 -delete
Le script s'exécute en root, qui se connecte à MariaDB sans mot de passe par le socket local. Copiez ensuite /var/backups/glpi hors du serveur (voir la règle 3-2-1), et faites un test de restauration sur une machine de test au moins une fois par trimestre.
16. Mettre à jour GLPI
Une mise à jour de version mineure (11.0.x vers 11.0.y) se fait ainsi. Testez d'abord sur une copie si vous le pouvez.
Étape 1. Lancez une sauvegarde complète (étape 15) et prenez un instantané de la machine virtuelle.
Étape 2. Rendez temporairement la configuration modifiable, puis passez GLPI en maintenance :
sudo chown -R www-data /etc/glpi
sudo -u www-data php /var/www/glpi/bin/console glpi:maintenance:enable
Étape 3. Remplacez le code, en conservant downstream.php et les extensions :
VERSION=11.0.12 # la nouvelle version
cd /tmp
wget "https://github.com/glpi-project/glpi/releases/download/\
${VERSION}/glpi-${VERSION}.tgz"
sudo mv /var/www/glpi /var/www/glpi-ancien
sudo tar -xzf glpi-${VERSION}.tgz -C /var/www/
sudo rm -rf /var/www/glpi/config /var/www/glpi/files
sudo cp /var/www/glpi-ancien/inc/downstream.php /var/www/glpi/inc/
sudo cp -a /var/www/glpi-ancien/marketplace/. /var/www/glpi/marketplace/
sudo chown -R root:root /var/www/glpi
sudo chown -R www-data:www-data /var/www/glpi/marketplace
Étape 4. Mettez à jour la base, quittez la maintenance et verrouillez de nouveau la configuration :
cd /var/www/glpi
sudo -u www-data php bin/console db:update
sudo -u www-data php bin/console glpi:maintenance:disable
sudo chown -R root:www-data /etc/glpi
Étape 5. Supprimez install/install.php, vérifiez le fonctionnement, puis supprimez /var/www/glpi-ancien.
Les changements de version majeure (10 vers 11, puis 11 vers 12) suivent le même principe, mais lisez d'abord les notes de version : les extensions doivent être compatibles avec la nouvelle version.
17. En cas de problème
| Symptôme | Cause probable | Solution |
|---|---|---|
| Page blanche ou erreur 500 | Erreur PHP | Lisez /var/log/glpi/php-errors.log et /var/log/apache2/glpi-error.log |
| Erreur 404 sur toutes les pages sauf l'accueil | Module rewrite absent ou mauvais DocumentRoot |
sudo a2enmod rewrite, vérifiez que la racine est bien /var/www/glpi/public |
| Le code PHP s'affiche ou se télécharge | PHP-FPM non relié à Apache | sudo a2enconf php8.4-fpm, vérifiez le chemin du socket dans le SetHandler |
| « Le dossier de configuration n'est pas accessible en écriture » à l'installation | Droits sur /etc/glpi |
sudo chown -R www-data /etc/glpi le temps de l'installation |
| Avertissement sur les fuseaux horaires | Tables de fuseaux non chargées ou droit manquant | Refaites le chargement de l'étape 4 et le GRANT SELECT sur mysql.time_zone_name |
| Les notifications ne partent pas | Actions automatiques non exécutées | Vérifiez /etc/cron.d/glpi et le mode CLI des actions |
| L'agent ne remonte rien | Inventaire désactivé, URL ou certificat refusé | Activez l'inventaire, vérifiez l'URL, lancez l'agent à la main avec glpi-agent --debug |
18. Liste de contrôle
| Point | Fait ? |
|---|---|
| Debian à jour, mises à jour de sécurité automatiques activées | ☐ |
Compte MariaDB dédié, avec droits limités à la base glpi |
☐ |
| Configuration, données et journaux hors du dossier web | ☐ |
Code de l'application non modifiable par www-data |
☐ |
DocumentRoot sur /var/www/glpi/public |
☐ |
install/install.php supprimé |
☐ |
Mot de passe du compte glpi changé, comptes tech, normal et post-only désactivés |
☐ |
| Comptes administrateurs nominatifs, avec double authentification | ☐ |
| Actions automatiques en mode CLI par cron | ☐ |
HTTPS actif, session.cookie_secure activé, URL de l'application à jour |
☐ |
Sauvegarde de la base, de /var/lib/glpi et de /etc/glpi (avec glpicrypt.key) testée |
☐ |
| Abonnement aux annonces de sécurité de GLPI pour appliquer les mises à jour rapidement | ☐ |
Sources
- GLPI : documentation d'installation (prérequis)
- GLPI : installation et emplacement des fichiers
- GLPI : outils en ligne de commande
- GLPI : prise en charge des fuseaux horaires
- GLPI : actions automatiques
- GLPI Agent : installation en ligne de commande sous Windows
- GLPI : versions publiées
- IT-Connect : GLPI 11.0.10, 10.0.28 et fin de GLPI 10
- GLPI : version candidate de GLPI 12