GLPI 11 : installation sur Linux

Dans ce tutoriel, je vais vous expliquer comment installer GLPI 11 sur Linux (Ubuntu 24.04) avec Apache2, PHP 8.3 en FPM et MariaDB.

GLPI 11 est une solution open source de gestion des services informatiques (ITSM) qui permet de gĂ©rer les Ă©quipements, les utilisateurs, les tickets d’incidents, et les demandes de service. Cette version apporte une interface modernisĂ©e, une meilleure ergonomie, et des performances amĂ©liorĂ©es. Elle intĂšgre nativement des outils de gestion de projet, de base de connaissances, et d’inventaire. GLPI 11 renforce Ă©galement la sĂ©curitĂ© et facilite l’intĂ©gration avec d’autres systĂšmes via API REST.

Au moment de la rédaction du tutoriel, GLPI 11 est encore en version Beta.

Prérequis pour déployer GLPI

Pour fonctionner GLPI Ă  besoin d’un serveur Web et de PHP, dans ce tutoriel, nous allons installer Apache2 et PHP directement sur le serveur en utilisant les dĂ©pĂŽts PPA qui vont nous permettre d’avoir les versions plus rĂ©cente d’Apache2 et de PHP.

Pour la partie serveur de base de donnĂ©es, nous allons dĂ©ployer un serveur MariaDB 11 Ă  l’aide de Docker.

En complément à la fin de ce tutoriel, je vous explique aussi comme configurer GLPI pour utiliser Redis comme systÚme de cache.

Vous devez également prévoir un nom DNS du type glpi.domain.tld.

Installer Docker et Docker compose

Pour commencer, vous allez devoir installer Docker et docker compose que nous allons utiliser pour le serveur de base de données et le serveur Redis, je vous invite à suivre ce tutoriel dans un premier temps : Ubuntu 24.04 : Installation de Docker et Docker compose

Installer Apache2

Pour commencer, nous allons installer le serveur web Apache2 depuis le dépÎt PPA for Apache 2.

Commencer par entrer la commande suivante :

sudo add-apt-repository ppa:ondrej/apache2

Mettre Ă  jour le cache des paquets :

sudo apt update

Sur la capture, on peut voir que le dépÎt ondrej/apache2 a été interrogé.

Lancer l’installation d’Apache2

sudo apt install apache2 -y

Patienter pendant l’installation …

Apache2 est installé, entrer la commande suivante pour vérifier que le service est démarré :

sudo systemctl status apache2

GLPI a besoin du module Rewrite pour fonctionner, nous allons l’activer dĂšs maintenant, entrer la commande suivante :

sudo a2enmod rewrite

Redémarrer Apache2 la prise en compte du module Rewrite.

sudo systemctl restart apache2

Pour tester le bon fonctionnement du serveur Web Apache2, ouvrir un navigateur Internet, comme URL saisir l’adresse IP du serveur (http://a.b.c.d). Vous devriez avoir la page suivante :

Le serveur Apache2 est fonctionnel.

Installation de PHP-FPM pour GLPI

PHP est le langage utiliser cotĂ© serveur, pour la gĂ©nĂ©ration dynamique des pages mais aussi pour traiter toutes la partie inventaire et diffĂ©rentes tĂąches automatiques Ă  l’aide des CRON.

Pour des raisons de « performances » et de séparation des services au niveau du serveur Web Apache2, nous allons installer PHP-FPM.

PHP-FPM (FastCGI Process Manager) est une mĂ©thode performante pour exĂ©cuter du code PHP sur un serveur web. Il permet de mieux gĂ©rer les processus PHP, d’amĂ©liorer la vitesse d’exĂ©cution et de rĂ©duire la charge serveur. PHP-FPM offre aussi une plus grande stabilitĂ©, notamment en cas de trafic important, et permet une configuration fine (par site ou application). C’est aujourd’hui la mĂ©thode recommandĂ©e avec Nginx et aussi trĂšs utilisĂ©e avec Apache.

Comme pour Apache2, nous allons utiliser le dĂ©pĂŽt ppa:ondrej/php qui nous permet d’avoir la version la plus Ă  jour de PHP 8.3 sur Ubuntu.

Commencer par ajouter le dépÎt avec la commande suivante :

sudo add-apt-repository ppa:ondrej/php

Le dépÎt ajouté, entrer la commande suivante :

sudo apt update

Maintenant, on installe PHP 8.3, entrer la commande suivante :

sudo apt install php8.3-fpm -y

Installer les modules complémentaires de PHP pour GLPI 11 :

sudo apt install php8.3-curl php8.3-gd php8.3-intl php8.3-mysql php8.3-bz2 php8.3-zip php8.3-apcu php8.3-cli php8.3-imap php8.3-mbstring php8.3-dom php8.3-simplexml php8.3-xmlreader php8.3-xmlwriter php8.3-bcmath php8.3-redis -y

Si vous prévoyez une liaison LDAP à un annuaire Active Directory, il faut également installer le module ldap de PHP :

sudo apt install php8.3-ldap -y

PHP est installĂ©, on va commencer par activer les modules nĂ©cessaires Ă  l’utilisation de PHP-FPM dans Apache2, pour cela entrer la commande suivante :

sudo a2enmod proxy_fcgi setenvif

Redémarrer le service Apache2 :

sudo systemctl restart apache2

Maintenant, il existe plusieurs façon pour faire communiquer Apache2 avec PHP-FPM, le serveur étant dédié à GLPI avec une seule version de PHP, on va activer la configuration directement disponible dans Apache2, entrer la commande suivante :

sudo a2enconf php8.3-fpm

Redémarrer de nouveau le service Apache2 :

sudo systemctl restart apache2

On va tester l’installation de PHP, pour cela on va crĂ©er un fichier PHP avec le fonction phpinfo(); qui va nous retourner les informations de l’installation de PHP.

Créer le fichier :

sudo nano /var/www/html/phpinfo.php

Dans le fichier ajouter les lignes suivantes :

<?php
phpinfo();
?>

Ensuite depuis un navigateur appelé la page phpinfo.php (http://a.b.c.d/phpinfo.php), vous devriez avoir cela :

Comme on peut le voir sur la Server API, PHP est exécuté en mode FPM/FastCGI.

Configuration du conteneur MariaDB

Dernier élément de notre serveur nécessaire pour faire fonctionner GLPI 11 est la base de données, comme expliquer au début de ce tutoriel, nous allons utiliser Docker pour faire fonctionner la base de données MariaDB pour GLPI.

L’utilisation de Docker va nous permettre de nous affranchir des dĂ©pĂŽts Ubuntu pour notre base de donnĂ©es, ce qui permet lĂ  aussi d’avoir les mises Ă  jour plus rapidement. Il y a d’autres avantages, mais ce n’est pas l’objet du tutoriel.

Créer le dossier pour le stockage du conteneur :

sudo mkdir /containers/mariadb-glpi

Aller dans le dossier de le dossier :

cd /containers/mariadb-glpi

Cloner le dépÎt suivant qui contient les fichiers de configuration du conteneur pour mariadb :

sudo git clone https://git.rdr-it.com/docker/mariadb-or-mysql-container.git .

Si vous souhaitez plus d’information sur le dĂ©ploiement de MariaDB avec Docker : Docker : crĂ©er un conteneur MariaDB ou MySQL

Editer le fichier .env

sudo nano .env

Voici le contenu que vous devez mettre (générer des mots de passe) :

TĂ©lĂ©charger l’image du conteneur :

sudo docker compose pull

Démarrer le conteneur :

sudo docker compose up -d

Le serveur de base de donnĂ©es est prĂȘt.

Télécharger GLPI 11

On va passer au téléchargement de GLPI.

Avant de commencer, créer le dossier qui va servir à héberger les fichiers de GLPI :

sudo mkdir -p /var/www/glpi

Aller dans le dossier home de votre utilisateur :

cd

Sur le page : https://github.com/glpi-project/glpi/releases copier l’url de l’archive (fichier tgz) de la derniĂšre release disponible de GLPI 11.

TĂ©lĂ©charger l’archive :

wget https://github.com/glpi-project/glpi/releases/download/11.0.0-beta5/glpi-11.0.0-beta5.tgz

Le fichier tĂ©lĂ©charger dĂ©compresser l’archive :

tar -xvzf glpi-11.0.0-beta5.tgz

Déplacer les fichiers de GLPI 11 dans le dossier prévu pour Apache2 :

sudo mv glpi/* /var/www/glpi

DerniÚre étape, changer le propriétaire du dossier /var/www/glpi :

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

Configuration du virtualhost pour GLPI 11 dans Apache2

DerniĂšre Ă©tape avec les lignes de commandes 😉 On va configurer le virtualhost dans Apache2 pour GLPI 11.

Aller dans le dossier /etc/apache2/sites-available/

cd /etc/apache2/sites-available/

Copier le fichier du virtualhost par défaut :

sudo cp 000-default.conf glpi.conf

Editer le fichier :

nano glpi.conf

Voici le fichier du virtualhost pour GLPI 11, adapter le ServerName avec l’enregistrement DNS que vous avez choisi.

<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        ServerName glpi.demo.lab

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/glpi/public

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/glpi-error.log
        CustomLog ${APACHE_LOG_DIR}/glpi-access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf

        <Directory /var/www/glpi/public>
            Require all granted

            RewriteEngine On

            # Ensure authorization headers are passed to PHP.
            # Some Apache configurations may filter them and break usage of API, CalDAV, ...
            RewriteCond %{HTTP:Authorization} ^(.+)$
            RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

            # Redirect all requests to GLPI router, unless file exists.
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ index.php [QSA,L]
        </Directory>

</VirtualHost>

Activer le virtualhost :

sudo a2ensite glpi

Recharger la configuration Apache2

sudo systemctl reload apache2

La configuration au niveau du serveur est terminée.

Installer GLPI 11

Depuis un navigateur Internet, entrer l’url que vous avez choisi pour GLPI, sur la page qui s’affiche, cliquer sur Go to install page 1.

GLPI 11 - Home Page for install

Commencer par sélectionner la langue 1 et cliquer sur le bouton OK 2.

Accepter la licence en cliquant sur Continuer 1.

Ici, nous allons faire une nouvelle installation de GLPI 11, cliquer sur le bouton Installer 1.

VĂ©rifier que les prĂ©requis de l’environnement soient respectĂ©s, cliquer ensuite sur le bouton Continuer 1 en bas de la page.

Configurer les informations de connexion à la base de données 1 (Serveur, utilisateur et mot de passe) et cliquer sur le bouton Continuer 2.

La connexion au serveur MariaDB qui est en conteneur est fonctionnelle, sélectionner la base glpi 1 et cliquer sur le bouton Continuer 2.

Patienter pendant l’initialisation de la base de donnĂ©es ….

GLPI 11 - Database creation

La base de donnĂ©es pour GLPI 11 a Ă©tĂ© initialisĂ©e, l’ensemble des tables et donnĂ©es par dĂ©faut ont Ă©tĂ© injectĂ©. Cliquer sur le bouton Continuer 1.

Configurer la collecte de données 1 si vous le souhaitez, puis cliquer sur le bouton Continuer 2.

Passe l’Ă©tape 5, cliquer sur Continuer 1.

L’installation de GLPI est terminĂ©e, cliquer sur le bouton Utiliser GLPI 1.

Vous ĂȘtes redirigĂ© vers la page de connexion Ă  GLPI 11.

Connexion à GLPI 11 et découverte

Pour la premiĂšre connexion, utiliser l’identifiant glpi 1 et le mot de passe glpi 2 et cliquer sur Se connecter 3.

AprĂšs la connexion, on arrive sur le page d’accueil de GLPI qui regroupe plusieurs tableau de bords avec des statiques.

Comment vous pouvez le voir, les statistiques ne sont pas Ă  0, c’est normale, par dĂ©faut GLPI 11 affiche des donnĂ©es de dĂ©mo, il est possible de les « supprimer » en cliquant sur Disable demonstration.

VĂ©rifier les donnĂ©es d’environnements

Depuis le menu Configuration 1, cliquer sur GĂ©nĂ©rale 2, vous allez retrouver ici les diffĂ©rentes informations de l’environnement applicatif de GLPI 11.

Configurer le cache Redis

Par dĂ©faut GLPI utilise un systĂšme de cache basĂ© sur les fichiers, sur des environnements ou GLPI est fortement sollicitĂ©, on peut utiliser Redis comme systĂšme de cache qui permet d’amĂ©liorer les performances.

Redis est une base de donnĂ©es NoSQL en mĂ©moire, open source, principalement utilisĂ©e comme cache, file d’attente, ou magasin clĂ©-valeur ultra-rapide. Elle stocke les donnĂ©es directement en RAM, ce qui permet des temps de rĂ©ponse extrĂȘmement courts (en millisecondes). Redis prend en charge des structures de donnĂ©es avancĂ©es comme les listes, sets, hashes, sorted sets, ou encore bitmaps. Elle est souvent utilisĂ©e pour amĂ©liorer les performances des applications web, gĂ©rer les sessions, ou faire du pub/sub. Redis peut Ă©galement ĂȘtre persistante, en Ă©crivant pĂ©riodiquement les donnĂ©es sur disque. Elle est compatible avec la haute disponibilitĂ© grĂące Ă  des mĂ©canismes comme Redis Sentinel ou Redis Cluster.

Dans la partie Performance 1, vous avez les informations sur le cache de GLPI, comme on peut le voir sur la capture ci-dessous, par défaut, nous sommes sur « filesystem ».

Pour faciliter l' »installation » de Redis, nous allons dĂ©ployer le service en conteneur avec Docker, comme on l’a fait pour base de donnĂ©es MariaDB.

De retour en SSH sur le serveur, aller dans le dossier /containers/ et créer le dossier pour le conteneur Redis.

cd /containers
sudo mkdir redis-glpi
cd redis-glpi

Créer le fichier docker-compose.yml.

sudo nano docker-compose.yml

Copier le contenu suivante dans le fichier docker-compose.yml :

services:
  redis-glpi:
    image: redis
    restart: always
    ports:
      - 6379:6379
    volumes:
      - ./data:/data

TĂ©lĂ©charger l’image du conteneur Redis :

sudo docker compose pull

Démarrer le conteneur :

sudo docker compose up -d

Aller ensuite dans le dossier d’installation de GLPI 11 :

cd /var/www/glpi

Entrer la commande suivante pour configurer le cache Redis dans GLPI 11 :

sudo php bin/console cache:configure --context core --dsn redis://127.0.0.1:6379/1

En fonction de l’utilisateur utilisĂ© en SSH, il faut confirmer l’exĂ©cution de la commande.

De retour sur la page Performance de GLPI 11, actualiser la page et vous devriez voir que Redis est configuré.

Continuer dans la configuration de GLPI 11

Ce tutoriel touche Ă  sa fin, d’autres vont arriver sur GLPI 11, ce que vous pouvez dĂšs Ă  prĂ©sent faire :

  • Supprimer le dossier install de GLPI
  • Changer le mot de passe du compte glpi
  • DĂ©sactiver ou supprimer les autres utilisateurs.

Si vous ĂȘtes habituĂ© Ă  GLPI 10, on peut voir que les deux versions sont similaires dans l’interface et la configuration des autres Ă©lĂ©ments comme la connexion LDAP, SMTP ….

Conclusion

A travers ce tutoriel, vous avez vu comment configurer un environnement LAMP spécifique pour GLPI sur Ubuntu 24.04, en configurant Apache2, PHP-FPM et des services avec Docker (MariaDB et Redis).

Il existe une multitude d’environnement pour installer GLPI et ici nous avons vu UNE des possibilitĂ©.

Si vous avez des questions, poser les dans les commentaires.

Romain Drouche
Romain Drouche
Architecte SystĂšme | MCSE: Core Infrastructure
Expert en infrastructures IT avec plus de 15 ans d’expĂ©rience sur le terrain. Actuellement Chef de projet SystĂšmes et RĂ©seaux et RĂ©fĂ©rent SSI (SĂ©curitĂ© des SystĂšmes d’Information), je mets mon expertise au service de la fiabilitĂ© et de la sĂ©curitĂ© des environnements technologiques.

1 réflexion au sujet de « GLPI 11 : installation sur Linux »

  1. Bonjour,

    Avez-vous réussi à modifier les logo sans le plugin payant ?

    Avec l’hĂŽte on remplace le /var/glpi/public/pics/fav.ico + logos pour l’ensemble mais rien pourtant j’ai bien le volume montĂ© avec les logos :'(

    Répondre

Laisser un commentaire