Skip to main content

Installation de GLPI

Dans ce tuto, nous allons voir comment démarrer notre instance privé de GLPI. Tout ce fera sur une machine Debian 12 Voir premier démarrage.

Pré-requis du serveur

Nous allons lui donner en caractéristiques de ressources :

  • 2 vCPU
  • 4Go vRAM
  • 64 Go de stockage

Une fois que votre machine Debian a fait son premier démarrage, nous allons pouvoir préparer le serveur avant l'installation

Préparation du serveur

Préparation du serveur

Dans un premier temps, nous allons changer le nom du serveur pour qu'il soit identifiable par un humain sur le réseau

sudo hostnamectl set-hostname glpi-server.lab.local

Et ensuite nous allons mettre nos paquets et notre machine à jour. Cette étape est toujours une bonne pratique même si la machine vient de démarrer

sudo apt update && sudo apt upgrade -y

Installation du serveur LAMP

Pour fonctionner GLPI a besoin d'un serveur LAMP pour démarrer. Pour plus d'information sur comment créer un serveur LAMP, c'est ici.

Installation de GLPI

Préparation de la base de donnée

Maintenant que le serveur LAMP est bien installé, nous allons installé le service GLPI sur notre serveur.

  • La première étape est de créer la base de donnée. On se connecte avec le compte root
sudo mysql -u root -p

puis on rentre les commandes suivantes :

CREATE DATABASE glpi_database;
GRANT ALL PRIVILEGES ON glpi_database.* TO <ADMIN_DB>@localhost IDENTIFIED BY <MOT_DE_PASSE>;
FLUSH PRIVILEGES;
EXIT;
  • Ensuite, nous allons rajouté tous les paquets php qui nous seront utiles
sudo apt-get install php-ldap php-xml php-common php-json php-mysql php-mbstring php-curl php-gd php-intl php-zip php-bz2 php-imap php-apcu

Récupération du code GLPI

  • Maintenant, faisons un petit détour sur les release de GLPI ? cela nous permettre de récupérer la dernière version. On peut voir la dernière version ici https://github.com/glpi-project/glpi dans la partie release de la page d'accueil.

Image release 10.0.17 de github

actuellement nous sommes donc en version 10.0.17 (a date du 6 décembre 2024)

Nous allons donc nous créer une variable pour eviter les erreurs de commandes :

# Remplacer la version par la votre
version=10.0.17 
  • Il nous faut maintenant récupérer les fichiers de conf que nous allons mettre dans le dossier /tmp
wget https://github.com/glpi-project/glpi/releases/download/${version}/glpi-${version}.tgz -P /tmp
  • Nous allons ensuite extraire les fichier et les mettre dans le dossier /var/www pour que notre service apache2 puisse les utiliser
tar -xzvf /tmp/glpi-${version}.tgz -C /var/www
  • Puis donner les droits au compte système www-data sur ce dossier
sudo chown -R www-data:www-data /var/www/glpi

Sécurisation et configuration de glpi

Notre site web démarre, mais nous allons déplacer nos fichier de configuration et nos librairies pour qu'elle ne soit pas exposé sur internet et donc être trop facilement modifiable

# Création des répertoires
sudo mkdir -p /etc/glpi /var/lib/glpi

# Gestions des droits
sudo chown -R www-data:www-data /etc/glpi
sudo chown -R www-data:www-data /var/lib/glpi

# Déplacement des fichiers
sudo mv /var/www/glpi/config /etc/glpi
sudo mv /var/www/glpi/files /var/lib/glpi

Cependant avec ces changements, nous devont préciser où sont nos nouveaux fichier. Nous allons les modifier de la manière suivantes :

  • /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';
}
  • /etc/glpi/local_define.php
<?php
define('GLPI_VAR_DIR', '/var/lib/glpi/files');
define('GLPI_LOG_DIR', '/var/log/glpi');

Configuration d'apache2

Maintenant que notre GLPI est installé, il faut le rendre accessible depuis un navigateur web. C'est là où nous allons créer notre virtualHost pour apache2. `- /etc/apache2/sites-available/glpi.conf

<VirtualHost *:80>
    ServerName glpi.lab.local

    DocumentRoot /var/www/glpi/public

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

        RewriteEngine On

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

Il nous faut activer le module de réécriture pour que le fichier puisse fonctionner

sudo a2 rewrite

Il ne nous reste plus qu'à activer notre VirtualHost et désactiver celui par défaut car sinon nous auront un problème avec deux services qui écoute sur le même port

sudo a2ensite glpi.conf
sudo a2dissite 000-default.conf

Configuration de php

Pour gagner en performance sur notre application, nous installé un module php en plus :

sudo apt-get install php8.2-fpm

Avec ce changement nous allons activer 2 modules en plus :

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.2-fpm
sudo systemctl reload apache2

nous allons autoriser les cookies des sessions dans le fichier /etc/php/8.2/fpm/php.ini

session.cookie_httponly = on

Puis redémarrer le service

sudo systemctl restart php8.2-fpm.service

Il faut également, préciser dans notre fichier de configuration d'apache d'utiliser ce maoteur php :

<VirtualHost *:80>
    ServerName glpi.lab.local

    DocumentRoot /var/www/glpi/public

    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost/"
    </FilesMatch>

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

        RewriteEngine On

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

Configuration de GLPI via le web

en nous connectant à l'interface web de notre service GLPI, il nous reste quelque configuration à faire :

  • Indiquer la langue de GLPI
  • Accepter la licence GNU
  • Cliquez sur le bouton installé et vérifié que tous les paquets sont bien installé
  • Configurer la base de donnée avec nos informations
    • loccalhost
    • <ADMIN_DB>
    • <MOT_DE_PASSE>
    • glpi_database

Gestion des identifiants

Une fois tout cela fait, il faut se connecter à l'interface d'administration avec les identifiants suivants : glpi/glpi pour être admin de glpi.

Il faut ensuite se créer un compte qui aura autant de droit que le compte glpi qui nous servira d'administration.

Une fois le compte créer, on se déconnecte du compte glpi et on se connecte avec notre nouveau compte d'administration puis on désactive tous les utilisateur par défaut pour des raisons de sécurités, c'est à dire :

  • glpi
  • tech
  • normal
  • post-only

Dernier changement

En vous reconnectant en ssh il faut que vous supprimiez le fichier /var/www/glpi/install/install.php pour éviter que si le serveur redémarre pour une raison, qu'il refasse toute l'installation graphique et que vous perdiez ce qui a été fait.

Votre glpi est désormais installé