Fiche installation GLPI avec HTTPS et Apache2

1. Introduction

GLPI (Gestionnaire Libre de Parc Informatique) permet de gérer un parc informatique, les tickets d’incidents, les utilisateurs, les contrats, les équipements et l’inventaire réseau.

Dans un contexte BTS CIEL ou BTS SIO, tu vas souvent déployer GLPI dans un environnement Linux afin de centraliser la gestion du support informatique et du parc matériel.

Dans cette fiche, tu vas apprendre à :

  • Installer GLPI sur Debian 13 et Ubuntu 26.04
  • Configurer Apache2
  • Installer MariaDB
  • Sécuriser le site avec HTTPS
  • Ouvrir uniquement les ports nécessaires avec UFW
  • Comprendre les fichiers importants
  • Diagnostiquer les erreurs courantes

Cette procédure respecte les bonnes pratiques actuelles d’installation recommandées pour un environnement web Linux moderne.

2. Sommaire

  1. Introduction
  2. Sommaire
  3. Architecture du service GLPI
  4. Préparation du serveur
  5. Installation des paquets nécessaires
  6. Installation et configuration de MariaDB
  7. Installation de GLPI
  8. Configuration Apache2
  9. Mise en place du HTTPS avec Let’s Encrypt
  10. Configuration du pare-feu UFW
  11. Fichiers importants
  12. Synthèse Markdown pour ta fiche bristol
  13. Bloc de configuration complet
  14. Explications détaillées
  15. Exemples concrets
  16. Commandes utiles et dépannage
  17. Journaux et logs
  18. Erreurs fréquentes
  19. Bonnes pratiques de sécurité
  20. Pour aller plus loin
  21. Liens utiles
  22. Propositions de TP

3. Architecture du service GLPI

Voici l’architecture classique :

Client navigateur


Apache2 HTTPS (443)


PHP 8.4


GLPI


MariaDB

Ports utilisés :

ServicePortRôle
HTTP80/TCPRedirection HTTPS
HTTPS443/TCPAccès sécurisé
MariaDB3306/TCPBase de données locale

Dans un environnement standard, MariaDB reste accessible uniquement en local.

4. Préparation du serveur

Commence par mettre le système à jour.

sudo apt update
sudo apt full-upgrade -y
sudo reboot

Explication

  • apt update : met à jour la liste des paquets
  • apt full-upgrade : installe les nouvelles versions et gère les dépendances complexes
  • reboot : redémarre le serveur si le noyau ou des bibliothèques critiques changent

5. Installation des paquets nécessaires

Installe Apache2, MariaDB, PHP et les modules nécessaires à GLPI.

sudo apt install -y apache2 mariadb-server \
php php-cli php-common php-curl php-gd php-imap php-ldap \
php-mysql php-xml php-mbstring php-bcmath php-zip php-intl \
php-apcu libapache2-mod-php unzip wget ufw certbot \
python3-certbot-apache

Explication des modules PHP importants

ModuleUtilité
php-mysqlConnexion MariaDB
php-xmlGestion XML
php-mbstringGestion UTF-8
php-curlAppels HTTP
php-gdGestion des images
php-intlInternationalisation
php-zipGestion des archives

Vérifie ensuite la version PHP :

php -v

6. Installation et configuration de MariaDB

Démarre puis active MariaDB.

sudo systemctl enable --now mariadb

Sécurise ensuite le serveur SQL.

sudo mysql_secure_installation

Points importants

Cette commande permet :

  • de définir le mot de passe root SQL
  • de supprimer les comptes anonymes
  • d’interdire l’accès root distant
  • de supprimer la base de test

Création de la base GLPI

Connecte-toi :

sudo mysql

Puis crée la base :

CREATE DATABASE glpi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'glpiuser'@'localhost' IDENTIFIED BY 'MotDePasseFort';

GRANT ALL PRIVILEGES ON glpi.* TO 'glpiuser'@'localhost';

FLUSH PRIVILEGES;

EXIT;

7. Installation de GLPI

Télécharge la dernière version officielle.

cd /tmp

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

tar -xzf glpi.tgz

sudo mv glpi /var/www/glpi

Configure ensuite les permissions :

sudo chown -R www-data:www-data /var/www/glpi
sudo find /var/www/glpi -type d -exec chmod 755 {} \;
sudo find /var/www/glpi -type f -exec chmod 644 {} \;

8. Configuration Apache2

Active les modules nécessaires.

sudo a2enmod rewrite ssl headers

Crée ensuite le VirtualHost.

sudo nano /etc/apache2/sites-available/glpi.conf

9. Mise en place du HTTPS avec Let’s Encrypt

Active le site :

sudo a2ensite glpi.conf
sudo systemctl reload apache2

Teste la configuration Apache :

sudo apache2ctl configtest

Obtient ensuite le certificat HTTPS :

sudo certbot --apache

Ce que fait Certbot

  • génère le certificat TLS
  • configure Apache automatiquement
  • met en place le renouvellement automatique

Teste le renouvellement :

sudo certbot renew --dry-run

10. Configuration du pare-feu UFW

Active uniquement les ports nécessaires.

sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

sudo ufw enable

Vérifie ensuite :

sudo ufw status verbose

Cas d’un accès MariaDB distant

Si un autre serveur doit accéder à MariaDB :

sudo ufw allow from 192.168.1.10 to any port 3306 proto tcp

Ne jamais ouvrir le port 3306 à tout Internet.

11. Fichiers importants

FichierRôle
/etc/apache2/sites-available/glpi.confVirtualHost Apache
/etc/php/8.4/apache2/php.iniConfiguration PHP
/etc/mysql/mariadb.conf.d/50-server.cnfConfiguration MariaDB
/var/www/glpi/Répertoire GLPI
/var/log/apache2/error.logLogs Apache
/var/log/apache2/access.logAccès Apache
/var/log/mysql/error.logLogs MariaDB

Arborescence simplifiée

/var/www/glpi/
├── config/
├── files/
├── marketplace/
├── plugins/
├── src/
└── vendor/

12. Synthèse Markdown pour ta fiche bristol

# GLPI HTTPS Apache2

## Installation

```bash
sudo apt install apache2 mariadb-server php php-mysql \
libapache2-mod-php certbot python3-certbot-apache
```

## Base MariaDB

```sql
CREATE DATABASE glpi;
CREATE USER 'glpiuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON glpi.* TO 'glpiuser'@'localhost';
FLUSH PRIVILEGES;
```

## Téléchargement

```bash
wget https://github.com/glpi-project/glpi/releases/latest/download/glpi.tgz
tar -xzf glpi.tgz
sudo mv glpi /var/www/glpi
```

## Permissions

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

## Apache

```bash
sudo a2enmod rewrite ssl
sudo a2ensite glpi.conf
sudo systemctl reload apache2
```

## HTTPS

```bash
sudo certbot --apache
```

## Pare-feu

```bash
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
```

13. Bloc de configuration complet

<VirtualHost *:80>
ServerName glpi.example.local
Redirect permanent / https://glpi.example.local/
</VirtualHost>

<VirtualHost *:443>
ServerName glpi.example.local

DocumentRoot /var/www/glpi/public

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

RewriteEngine On

AllowOverride All

Options FollowSymLinks
</Directory>

ErrorLog ${APACHE_LOG_DIR}/glpi_error.log
CustomLog ${APACHE_LOG_DIR}/glpi_access.log combined

SSLEngine on

SSLCertificateFile /etc/letsencrypt/live/glpi.example.local/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/glpi.example.local/privkey.pem

Header always set Strict-Transport-Security "max-age=63072000"
</VirtualHost>

14. Explications détaillées

Pourquoi utiliser HTTPS ?

HTTPS protège :

  • les mots de passe
  • les tickets d’incidents
  • les informations du parc informatique
  • les sessions utilisateurs

Sans HTTPS, un attaquant peut intercepter les échanges réseau.

Pourquoi utiliser /public ?

Les versions récentes de GLPI recommandent :

/var/www/glpi/public

comme DocumentRoot afin d’éviter l’exposition directe de fichiers sensibles.

Pourquoi activer rewrite ?

Le module Apache rewrite permet :

  • les URL propres
  • certaines redirections internes GLPI
  • la compatibilité avec plusieurs fonctionnalités web

15. Exemples concrets

Exemple 1 : GLPI pour un lycée

  • inventaire des postes
  • gestion des salles
  • tickets enseignants
  • suivi des interventions

Exemple 2 : PME

  • suivi des licences
  • gestion du parc imprimantes
  • tickets utilisateurs
  • supervision du matériel

Exemple 3 : Intégration avec GLPI Agent

GLPI peut recevoir automatiquement :

  • CPU
  • RAM
  • adresses IP
  • logiciels installés

depuis les agents installés sur les postes clients.

16. Commandes utiles et dépannage

Vérifier Apache

sudo systemctl status apache2

Vérifier MariaDB

sudo systemctl status mariadb

Vérifier les ports ouverts

sudo ss -tulpn

Tester la configuration Apache

sudo apache2ctl configtest

Vérifier les certificats

sudo certbot certificates

Redémarrer les services

sudo systemctl restart apache2
sudo systemctl restart mariadb

17. Journaux et logs

Logs Apache

tail -f /var/log/apache2/error.log

Tu peux voir :

  • erreurs PHP
  • problèmes SSL
  • erreurs de permissions
  • erreurs VirtualHost

Logs d’accès

tail -f /var/log/apache2/access.log

Tu peux analyser :

  • adresses IP clientes
  • URL consultées
  • codes HTTP

Logs MariaDB

sudo journalctl -u mariadb

Activer plus de logs PHP

Édite :

/etc/php/8.4/apache2/php.ini

Puis :

display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log

Redémarre ensuite Apache :

sudo systemctl restart apache2

18. Erreurs fréquentes

Erreur 403 Forbidden

Cause possible :

  • mauvais droits
  • mauvais DocumentRoot

Vérifie :

ls -l /var/www/

Page blanche GLPI

Cause fréquente :

  • module PHP manquant

Vérifie :

php -m

Erreur certificat HTTPS

Cause possible :

  • DNS incorrect
  • port 80 fermé
  • nom de domaine invalide

19. Bonnes pratiques de sécurité

  • Utilise HTTPS uniquement
  • Désactive l’accès root SQL distant
  • Mets GLPI à jour régulièrement
  • Sauvegarde la base MariaDB
  • Limite les ports ouverts
  • Utilise des mots de passe robustes
  • Surveille les logs Apache
  • Installe Fail2ban si le serveur est exposé sur Internet

20. Pour aller plus loin

Tu peux ensuite :

  • installer GLPI Agent
  • connecter GLPI à LDAP/Active Directory
  • utiliser des plugins
  • superviser les équipements réseau
  • mettre en place des sauvegardes automatiques
  • utiliser Redis pour améliorer les performances

21. Liens utiles

Documentation officielle GLPI

https://glpi-install.readthedocs.io/en/latest

Documentation officielle d’installation et d’administration GLPI.

Documentation Apache2 Debian

https://wiki.debian.org/Apache

Documentation Debian officielle pour Apache2.

Documentation Let’s Encrypt

https://eff-certbot.readthedocs.io/en/stable

Documentation officielle Certbot et HTTPS.

Documentation UFW Ubuntu

https://help.ubuntu.com/community/UFW

Guide officiel UFW Ubuntu.

OpenClassrooms — Administrez un système Linux

https://openclassrooms.com/fr/courses/7170491-administrez-un-systeme-linux

Très bon cours pour comprendre les services Linux et Apache.

OpenClassrooms — Découvrez le fonctionnement des réseaux TCP/IP

https://openclassrooms.com/fr/courses/7172076-decouvrez-le-fonctionnement-des-reseaux-tcp-ip

Permet de comprendre les ports, HTTPS et les flux réseau.

RFC TLS

https://datatracker.ietf.org/doc/html/rfc8446

Documentation officielle TLS 1.3.

22. Propositions de TP

TP 1 — Installation complète

Objectif :

  • installer GLPI
  • configurer Apache
  • activer HTTPS

TP 2 — Sécurisation serveur

Objectif :

  • configurer UFW
  • interdire MariaDB distant
  • analyser les logs

TP 3 — Intégration inventaire

Objectif :

  • installer GLPI Agent
  • remonter automatiquement les postes clients

TP 4 — Diagnostic d’erreurs

Objectif :

  • corriger une erreur Apache
  • résoudre un problème PHP
  • analyser les journaux système

Retour en haut