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
- Introduction
- Sommaire
- Architecture du service GLPI
- Préparation du serveur
- Installation des paquets nécessaires
- Installation et configuration de MariaDB
- Installation de GLPI
- Configuration Apache2
- Mise en place du HTTPS avec Let’s Encrypt
- Configuration du pare-feu UFW
- Fichiers importants
- Synthèse Markdown pour ta fiche bristol
- Bloc de configuration complet
- Explications détaillées
- Exemples concrets
- Commandes utiles et dépannage
- Journaux et logs
- Erreurs fréquentes
- Bonnes pratiques de sécurité
- Pour aller plus loin
- Liens utiles
- 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 :
| Service | Port | Rôle |
|---|---|---|
| HTTP | 80/TCP | Redirection HTTPS |
| HTTPS | 443/TCP | Accès sécurisé |
| MariaDB | 3306/TCP | Base 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 paquetsapt full-upgrade: installe les nouvelles versions et gère les dépendances complexesreboot: 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
| Module | Utilité |
|---|---|
| php-mysql | Connexion MariaDB |
| php-xml | Gestion XML |
| php-mbstring | Gestion UTF-8 |
| php-curl | Appels HTTP |
| php-gd | Gestion des images |
| php-intl | Internationalisation |
| php-zip | Gestion 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
| Fichier | Rôle |
|---|---|
/etc/apache2/sites-available/glpi.conf | VirtualHost Apache |
/etc/php/8.4/apache2/php.ini | Configuration PHP |
/etc/mysql/mariadb.conf.d/50-server.cnf | Configuration MariaDB |
/var/www/glpi/ | Répertoire GLPI |
/var/log/apache2/error.log | Logs Apache |
/var/log/apache2/access.log | Accès Apache |
/var/log/mysql/error.log | Logs 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
