Aller au contenu

SP 2 - Mission 4 - Installation de GLPI

SP 2 : Gestion parc informatique

Mission 4 : Installation de GLPI

Contexte : MILLENUITS

Logo MilleNuits


Informations générales

  • Date de crĂ©ation : 12/02/2025
  • Dernière modification : 12/02/2025
  • Auteur(s) : Louis MEDO

Objectif

Dans cette procédure nous allons mettre en place GLPI, un outil de gestion de tickets et de parc, sur une VM Debian. L'installation s'appuie sur la version GLPI 11 et PHP 8.4.


Prérequis

  • Serveur Debian opĂ©rationnel avec accès Internet.
  • Accès administrateur (root ou via sudo).
  • Un sous-domaine ou une adresse IP configurĂ© (ex: support.millenuits.com).

Sommaire

  • A. PrĂ©paration du serveur pour l'installation de GLPI
  • B. Installation de GLPI
  • Annexe de configuration
  • Ressources

A. Préparation du serveur pour l'installation de GLPI

1. Installation du socle LAMP

  1. Mise à jour du système. Avant toute installation, il est nécessaire de mettre à jour la liste des paquets et le système pour garantir la sécurité et la stabilité.
apt update && apt upgrade
  • apt-get update : Met Ă  jour la liste des paquets disponibles depuis les dĂ©pĂ´ts.
  • apt-get upgrade : Installe les mises Ă  jour des paquets dĂ©jĂ  installĂ©s.

  • Installation des composants LAMP et extensions. Installation du serveur Web (Apache2), du langage de script (PHP 8.4 via FPM pour la performance) et de la base de donnĂ©es (MariaDB). Nous installons Ă©galement les extensions PHP requises par GLPI 11 (ex: intl pour la langue, gd pour les images, mbstring pour l'UTF-8).

sudo apt-get install apache2 php8.4-fpm mariadb-server 
sudo apt install php8.4-{curl,gd,intl,mysql,zip,bcmath,mbstring,xml,bz2,ldap}
  • install : Commande pour installer de nouveaux paquets.
  • apache2 : Le serveur HTTP.
  • php8.4-fpm : FastCGI Process Manager, gère l'exĂ©cution du code PHP indĂ©pendamment d'Apache.
  • mariadb-server : Le système de gestion de base de donnĂ©es.
  • {curl,gd...} : Liste des bibliothèques additionnelles nĂ©cessaires au cĹ“ur de GLPI.

2. Préparation d'une base de données pour GLPI

  1. Sécurisation de MariaDB. Exécution du script interactif pour sécuriser l'instance de base de données (définition du mot de passe root, suppression des accès anonymes et de la base de test).
sudo mariadb-secure-installation 
  • mariadb-secure-installation : Script binaire lançant l'assistant de sĂ©curitĂ©.

Exemple de configuration :

  • Switch to unix_socket authentification : n
  • Change the root password : y
  • Remove anonymous users : y
  • Dissallow root login remotely : y
  • Remove test database : y
  • Reload privilege tables : y

  • CrĂ©ation de la base et de l'utilisateur. CrĂ©ation d'une base dĂ©diĂ©e et d'un utilisateur spĂ©cifique avec des droits restreints Ă  cette seule base, par mesure de sĂ©curitĂ©.

sudo mysql -u root -p

# Une fois dans la console SQL, saisir les lignes suivantes :

CREATE DATABASE millenuits_glpi;
GRANT ALL PRIVILEGES ON millenuits_glpi.* TO poppy@localhost IDENTIFIED BY "VoirBitwarden";
FLUSH PRIVILEGES;
EXIT;
  • mysql -u root -p : Connexion Ă  la console SQL en tant que root.
  • CREATE DATABASE : CrĂ©e le conteneur de donnĂ©es.
  • GRANT ALL PRIVILEGES : Donne tous les droits (lecture/Ă©criture) sur la base millenuits_glpi Ă  l'utilisateur poppy.
  • FLUSH PRIVILEGES : Recharge les tables de droits pour appliquer les changements immĂ©diatement.

3. Téléchargement de GLPI

  1. Récupération des sources. Téléchargement de l'archive officielle de GLPI 11 depuis le dépôt GitHub dans le dossier temporaire /tmp.

    💡 Pensez à vérifier que vous télécharger la dernière version de GLPI présente dans le dépôt GitHub : https://github.com/glpi-project/glpi/releases

cd /tmp 
wget https://github.com/glpi-project/glpi/releases/download/11.0.5/glpi-11.0.5.tgz
  • cd /tmp : Change le rĂ©pertoire courant vers le dossier temporaire.
  • wget : Utilitaire de tĂ©lĂ©chargement de fichiers en ligne de commande.

  • Extraction et installation. DĂ©compression de l'archive directement dans le rĂ©pertoire racine du serveur web.

sudo tar -xzvf glpi-11.0.5.tgz -C /var/www/
  • tar : Utilitaire d'archivage.
  • -xzvf : x (extraire), z (dĂ©compresser gzip), v (verbeux/afficher les dĂ©tails), f (fichier cible).
  • -C : Indique le rĂ©pertoire de destination (/var/www/).

4. Préparation de l'installation

  1. Attribution des droits. Transfert de la propriété des fichiers GLPI à l'utilisateur système d'Apache (www-data) pour qu'il puisse lire et écrire dans les dossiers nécessaires.
sudo chown www-data:www-data /var/www/glpi/ -R
  • chown : Change Owner (changer le propriĂ©taire).
  • -R : RĂ©cursif (s'applique Ă  tous les sous-dossiers et fichiers).
  • www-data:www-data : Utilisateur et groupe par dĂ©faut d'Apache sur Debian.  
  • SĂ©curisation des dossiers. DĂ©placement des dossiers sensibles (config, files, log) hors de la racine web accessible publiquement, conformĂ©ment aux bonnes pratiques de l'Ă©diteur. CrĂ©ation des fichiers de redirection pour que GLPI retrouve ces dossiers.
# Création et déplacement

sudo mkdir /etc/glpi /var/lib/glpi /var/log/glpi
sudo chown www-data /etc/glpi /var/lib/glpi /var/log/glpi
sudo mv /var/www/glpi/config /etc/glpi
sudo mv /var/www/glpi/files /var/lib/glpi

# Création du fichier de lien 1
sudoedit /var/www/glpi/inc/downstream.php

# Ajouter le contenu suivant dans le fichier :
<?php
define('GLPI_CONFIG_DIR', '/etc/glpi/');
if (file_exists(GLPI_CONFIG_DIR . '/local_define.php')) {
    require_once GLPI_CONFIG_DIR . '/local_define.php';
}

# Création du fichier de lien 2
sudoedit /etc/glpi/local_define.php

# Ajouter le contenu suivant dans le fichier :
<?php
define('GLPI_VAR_DIR', '/var/lib/glpi/files');
define('GLPI_LOG_DIR', '/var/log/glpi');
  • mkdir : CrĂ©ation de rĂ©pertoires (/etc/glpi, /var/lib/glpi, /var/log/glpi).
  • mv : DĂ©placement des dossiers originaux vers les nouveaux emplacements sĂ©curisĂ©s.
  • nano : Éditeur de texte pour crĂ©er les fichiers downstream.php et local_define.php.

5. Configuration de Apache2 pour GLPI

  1. Création du VirtualHost. Configuration d'un fichier hôte virtuel Apache pour indiquer le dossier racine (DocumentRoot) et les règles de réécriture d'URL.
 sudo nano /etc/apache2/sites-available/glpi.millenuits.lab.conf
 
 #  Insérer la configuration VirtualHost standard (voir dans le dépôt git de la mission 4)

2. Activation du site. Activation de la nouvelle configuration, désactivation du site par défaut et activation du module de réécriture.

sudo a2ensite glpi.millenuits.lab.conf
sudo a2dissite 000-default.conf
sudo a2enmod rewrite
sudo systemctl restart apache2
  • a2ensite : Active le fichier de configuration du site spĂ©cifiĂ©.
  • a2dissite : DĂ©sactive le site par dĂ©faut (000-default).
  • a2enmod rewrite : Active le module mod_rewrite d'Apache.
  • systemctl restart : RedĂ©marre le service pour appliquer tout changement.  

6. Utilisation de PHP8.4-FPM avec Apache2

  1. Liaison Apache et PHP-FPM. Activation des modules nécessaires pour qu'Apache puisse communiquer avec le service FPM.
sudo a2enmod proxy_fcgi setenvif 
sudo a2enconf php8.4-fpm 
sudo systemctl reload apache2
  • proxy_fcgi : Module permettant Ă  Apache de transmettre les requĂŞtes au serveur FastCGI (PHP-FPM).
  • setenvif : Permet de dĂ©finir des variables d'environnement basĂ©es sur la requĂŞte.
  • a2enconf : Active la configuration globale spĂ©cifiĂ©e (php8.4-fpm).

  • Durcissement de la configuration PHP. Modification du fichier php.ini de FPM pour sĂ©curiser les cookies de session.

# Éditer /etc/php/8.4/fpm/php.ini pour modifier cookie_httponly et cookie_samesite

sudo nano /etc/php/8.4/fpm/php.ini
sudo systemctl restart php8.4-fpm.service
  • session.cookie_httponly = on : EmpĂŞche le JavaScript d'accĂ©der au cookie de session (protection XSS).
  • session.cookie_samesite = Lax : Protège contre les attaques CSRF.
  • systemctl restart php8.4-fpm : Applique les modifications de configuration PHP.

B. Installation de GLPI

  1. Initialisation Web. Accéder à l'URL du serveur (ex: http://ip-serveur ou nom de domaine). Suivre l'assistant : sélectionner la langue "Français", accepter la licence, et cliquer sur "Installer".

  2. Connexion Base de données. À l'étape de configuration SQL:

  3. Serveur SQL : localhost

  4. Utilisateur SQL : poppy
  5. Mot de passe SQL : VoirBitwarden
  6. Sélectionner la base existante : millenuits_glpi
  7. Terminer l'installation et supprimer le fichier d'installation pour la sécurité : sudo rm /var/www/glpi/install/install.php.

Annexe de configuration

  1. Configuration de GLP
  2. Ouvrir un ticket sur GLPI
  3. Utiliser GLPI en tant qu'helpdesk

Ressources