Installation et configuration de GLPI sur Debian
GLPI est une application web PHP : un serveur Apache, une base MariaDB et une archive bien placée suffisent. Voici la procédure pour Debian 13 et GLPI 11, avec les dossiers sensibles sortis de la racine web.
L'ancienne version de cette page visait Debian 9 « Stretch » et la branche 9.x de GLPI. Les deux sont hors support. Selon Debian, les mises à jour de sécurité de Stretch ont cessé en juillet 2020 et son support à long terme (LTS) a pris fin fin juin 2022. Côté GLPI, la politique de sécurité publiée sur le dépôt GitHub du projet ne liste plus que les branches 10.0 et 11.0 comme maintenues ; tout ce qui précède la 10.0 ne l'est plus.
La procédure ci-dessous vise donc Debian 13 « Trixie », la version stable actuelle, et GLPI 11, la branche documentée dans le guide d'installation officiel. La version 12.0.0 a été publiée sur GitHub le 7 octobre 2026, mais la matrice de prérequis du guide ne la couvre pas encore : vérifiez ses notes de version avant de la choisir. Testez d'abord sur une machine de lab, et prenez un instantané (snapshot) ou une sauvegarde avant toute intervention sur un serveur de production.
Ce qui change depuis GLPI 9.x
Trois différences surprennent quand on reprend un vieux tutoriel :
- La racine web est le dossier
public. Depuis GLPI 10.0.7, la documentation exige que leDocumentRootpointe vers/var/www/glpi/public, pas vers le dossier GLPI lui-même. - PHP 8.2 minimum pour GLPI 11. La matrice officielle donne PHP 7.4 minimum pour la 10.0 et PHP 8.2 pour la 11.0. Debian 13 fournit PHP 8.4.
- MariaDB 10.6 minimum pour GLPI 11 (MySQL 8.0). Debian 13 fournit MariaDB 11.8.
Topologie du lab
Un seul serveur suffit pour commencer : la base et l'application cohabitent.
| Hôte | Rôle | Interface | Adresse |
|---|---|---|---|
| srv-glpi01 | Debian 13, Apache, PHP, MariaDB, GLPI | ens18 | 192.168.10.20/24 |
| poste-admin | navigateur pour l'assistant | eth0 | 192.168.10.50/24 |
| (DNS du lab) | enregistrement glpi.lab.local vers 192.168.10.20 | — | 192.168.10.1 |
Prérequis
GLPI demande trois briques : un serveur web capable d'exécuter PHP, PHP avec ses extensions, et une base MySQL ou MariaDB. Ce sont les deux seuls moteurs pris en charge.
- Apache 2, Nginx, lighttpd ou IIS côté web ; Apache est utilisé ici.
- Extensions PHP obligatoires :
curl,gd,intl,mysqli,zlib, plusbcmath,mbstringetopensslpour GLPI 11. Les autres (dom,fileinfo,session…) sont actives par défaut. - Extensions conseillées :
ldappour l'annuaire,zipetbz2pour le marketplace, OPcache pour les performances.
Étape 1 : installer Apache, PHP et MariaDB
Les noms de paquets ci-dessous sont ceux de Debian 13. Le paquet php-ldap n'est utile que si vous comptez brancher un annuaire, mais il évite une réinstallation plus tard.
apt update
apt install apache2 mariadb-server php libapache2-mod-php php-curl php-gd php-intl php-mysql php-xml php-mbstring php-bcmath php-zip php-bz2 php-ldap
Étape 2 : créer la base et son utilisateur
Créez une base dédiée et un compte qui n'a de droits que sur elle. L'assistant d'installation pourrait créer la base lui-même, mais il lui faudrait alors un compte SQL autorisé à créer des bases, ce qu'il vaut mieux éviter.
mariadb
CREATE DATABASE glpi;
CREATE USER 'glpi'@'localhost' IDENTIFIED BY '<mot-de-passe-fort>';
GRANT ALL PRIVILEGES ON glpi.* TO 'glpi'@'localhost';
FLUSH PRIVILEGES;
Étape 3 : télécharger et décompresser l'archive
Prenez l'archive glpi-<version>.tgz depuis la page de téléchargement du site GLPI ou depuis les releases GitHub du projet. La documentation prévient que les deux archives « Source code » de GitHub ne doivent pas être utilisées. Choisissez la dernière version stable de la branche 11.0 sur la page des releases, sans recopier un numéro trouvé dans un tutoriel : les versions correctives se succèdent vite.
cd /tmp
wget https://github.com/glpi-project/glpi/releases/download/<version>/glpi-<version>.tgz
tar -xzf glpi-<version>.tgz -C /var/www/
L'archive contient un dossier glpi/, ce qui donne /var/www/glpi.
Étape 4 : sortir la configuration, les données et les logs
Par défaut, GLPI range sa configuration dans config/ et ses fichiers dans files/, à l'intérieur de l'application. Le guide officiel montre comment les déplacer selon la hiérarchie standard des systèmes de fichiers (FHS) : /etc/glpi pour la configuration, /var/lib/glpi/files pour les données, /var/log/glpi pour les journaux. C'est aussi ce qui répond à la question « où sont les logs GLPI ? ».
mkdir -p /etc/glpi /var/lib/glpi /var/log/glpi
cp -a /var/www/glpi/config/. /etc/glpi/
cp -a /var/www/glpi/files /var/lib/glpi/
Créez ensuite /var/www/glpi/inc/downstream.php :
<?php
define('GLPI_CONFIG_DIR', '/etc/glpi/');
if (file_exists(GLPI_CONFIG_DIR . '/local_define.php')) {
require_once GLPI_CONFIG_DIR . '/local_define.php';
}
Puis /etc/glpi/local_define.php :
<?php
define('GLPI_VAR_DIR', '/var/lib/glpi/files');
define('GLPI_LOG_DIR', '/var/log/glpi');
Enfin, les droits. Sous Debian, Apache tourne sous l'utilisateur www-data. GLPI doit pouvoir lire et écrire dans les données et les logs, et écrire dans la configuration pendant l'installation.
chown -R www-data:www-data /etc/glpi /var/lib/glpi /var/log/glpi
Étape 5 : le virtual host Apache
Ce fichier reprend l'exemple de la documentation GLPI, valable à partir de la 10.0.7. Les règles de réécriture envoient toutes les requêtes vers le routeur de GLPI.
<VirtualHost *:80>
ServerName glpi.lab.local
DocumentRoot /var/www/glpi/public
<Directory /var/www/glpi/public>
Require all granted
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>
</VirtualHost>
Enregistrez-le sous /etc/apache2/sites-available/glpi.conf, activez le module de réécriture et le site, puis rechargez Apache :
a2enmod rewrite
a2ensite glpi.conf
a2dissite 000-default.conf
systemctl reload apache2
En production, ajoutez HTTPS. La documentation recommande alors de régler session.cookie_secure à on, ainsi que session.cookie_httponly à on et session.cookie_samesite au moins à Lax.
Étape 6 : l'assistant d'installation
Ouvrez http://glpi.lab.local/ depuis le poste d'administration. L'assistant enchaîne : langue, licence GNU, choix « Installer », contrôle de l'environnement, connexion à la base, choix de la base, initialisation, télémétrie facultative.
Lire le contrôle d'environnement
C'est l'étape qui bloque le plus souvent. Un prérequis obligatoire manquant empêche de continuer, avec un message qui indique quoi corriger.
| Message | Cause probable |
|---|---|
| extension manquante | paquet php-… absent ; installez-le puis rechargez Apache |
| dossier non accessible en écriture | propriétaire de /var/lib/glpi ou /var/log/glpi incorrect |
| accès web aux fichiers | le DocumentRoot ne pointe pas vers public |
À l'étape base de données, saisissez localhost, l'utilisateur glpi et son mot de passe, puis sélectionnez la base glpi existante. La documentation avertit que le contenu d'une base existante sélectionnée est détruit à l'installation.
Les comptes créés par défaut
L'écran final liste les comptes créés : glpi (super-administrateur), tech, normal et post-only, chacun avec un mot de passe connu de tous. La documentation demande de les supprimer ou de les modifier. Créez d'abord votre propre compte avec le profil super-administrateur, comme le précise la documentation, puis seulement supprimez ou désactivez glpi.
Après l'installation
Rendez /etc/glpi en lecture seule pour www-data maintenant que l'installation l'a écrit. Ensuite viennent deux chantiers : brancher l'annuaire pour que les utilisateurs se connectent avec leur compte du domaine, en suivant la configuration LDAP de GLPI avec Active Directory, puis remplir l'inventaire en déployant l'agent GLPI sur les postes.
Si vous administrez déjà une supervision dans le même lab, la méthode est proche de celle utilisée pour installer Centreon : serveur dédié, base locale, puis agents. Le reste du parc logiciel GLPI est regroupé dans la rubrique GLPI.
Questions fréquentes
Quelle version de PHP faut-il pour GLPI 11 ?
La matrice de compatibilité officielle indique PHP 8.2 au minimum pour GLPI 11.0, et PHP 7.4 pour la branche 10.0. Debian 13 fournit PHP 8.4, ce qui convient.
Où se trouvent les logs de GLPI ?
Par défaut dans le dossier files/_log de l'application. Si vous suivez la disposition FHS du guide officiel, ils sont dans /var/log/glpi, défini par la constante GLPI_LOG_DIR dans local_define.php.
Peut-on installer GLPI sans l'assistant web ?
Oui. La documentation décrit une installation en ligne de commande avec php bin/console db:install, qui prend l'hôte, le nom de la base, l'utilisateur et son mot de passe en options et les demande s'ils manquent.
Pourquoi le DocumentRoot doit-il pointer vers public ?
Depuis GLPI 10.0.7, seul le dossier public doit être exposé. Le reste de l'application, dont la configuration et les fichiers, ne doit pas être accessible depuis le navigateur.
GLPI fonctionne-t-il avec PostgreSQL ?
Non. La documentation précise que seuls MySQL et MariaDB sont actuellement pris en charge, avec MariaDB 10.6 ou MySQL 8.0 au minimum pour GLPI 11.