Installer GLPI 10 sur un serveur debian

Installer GLPI 10 sur un serveur debian

Pré-requis

  • CPU : 2
  • RAM : 2
  • Stockage : 20 GO

Installation

On aura besoin d'installer un serveur web, un serveur de base de données et php.

Avant de commencer on met à jour les dépôts APT

sudo apt update

Ensuite on installe un serveur web NGINX ou Apache2

Pour ma part j'ai choisit NGINX, pour l'installer il suffit d’exécuter cette commande

sudo apt install nginx

Puis on installe un serveur de base de données MariaDB, Pour cela suivre l'article Installer MariaDB sur debian 12

Et on installe aussi php et ses dépendances :

sudo apt install php-fpm

sudo apt install php-common php-mysql php-cgi php-mbstring php-curl php-gd php-xml php-apcu php-xmlrpc php-pear php-intl php-ldap php-zip php-bz2

Configuration

Création d'une base de données glpi_db

On se connecte à notre MariaDB server en exécutant cette commande sudo mariadb

Et on crée une base de donnée qu'on va appeler glpi_db

CREATE DATABASE glpi_db;

On crée aussi un utilisateur admin_glpi et on lui donne les privileges sur la base de donnée glpi_db :

CREATE USER 'admin_glpi'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON glpi_db.* TO 'admin_glpi'@'localhost';

Et on charge les privileges en exécutant cette commande dans MariaDB et puis on quitte :

FLUSH PRIVILEGES;
exit

Téléchargements de GLPI

On va télécharger la dernière version 10.0.10 avec wget

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

Ensuite on va décompresser le fichier tgz dans le répertoire par défaut du serveur web /var/www en exécutant cette commande avec les droits sudo :

sudo tar -xvzf glpi-10.0.10.tgz -C /var/www

Puis on rends l'utilisateur du serveur web www-data propriétaire de ce nouveau répertoire :

sudo chown -R www-data /var/www

Configuration des emplacements des répertoires et fichiers GLPI

Ces étapes sont des recommandations de GLPI

On crée un répertoire glpi dans /etc

sudo mkdir /etc/glpi

Et on crée un fichier nommé local_define.php dans le répertoire précédemment crée, et on insert le contenu suivant :

sudo nano /etc/glpi/local_define.php

On sauvgarde avec Ctrl + X puis O pour valider et Entrer pour garder le nom du fichier.

Ensuite, on déplace le répertoire Config, et on rend l'utilisateur www-data propiétaire du répertoire /etc/glpi

sudo mv /var/www/glpi/config /etc/config
sudo chown -R www-data /etc/glpi

Et on déplace aussi le répertoire files de glpi dans /var/lib/glpi

sudo mv /var/www/glpi/files /var/lib/glpi

Ensuite, on crée un répertoire glpi dans /var/log pour les logs de GLPI et on rend encore l'utilisateur www-data propriétaire de ce répertoire

sudo mkdir /var/log/glpi
sudo chown -R www-data /var/log/glpi

Puis on crée un fichier downstream.php dans /var/www/glpi/inc pour que GLPI sache où chercher ses configs, on rajoute ce contenu dans le fichier downstream.php :

sudo nano /var/www/glpi/inc/downstream.php
Et on rajoute ce contenu :

<?php
define('GLPI_CONFIG_DIR', '/etc/glpi/');
if (file_exists(GLPI_CONFIG_DIR . '/local_define.php')) {
require_once GLPI_CONFIG_DIR . '/local_define.php';
}

Le résultat comme ceci :

Configuration du serveur web :

On crée un fichier de configuration glpi.conf dans /etc/nginx/sites-available

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

Et on met ces directives nginx dans ce fichier et on sauvegarde

server {
    listen 80;
    listen [::]:80;

    server_name 172.16.1.50;
    root /var/www/glpi/public;

    access_log /var/log/glpi/access.log;

    location / {
        try_files $uri /index.php$is_args$args;
    }


    location ~ ^/index\.php$ {
        fastcgi_pass unix:/run/php/php-fpm.sock;

        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   }

}

Et puis on crée un lien symbolique de ce fichier vers le répertoire sites-enabled :

sudo ln -s /etc/nginx/sites-available/glpi.conf /etc/nginx/sites-enabled/

Et puis on test la config nginx avec sudo nginx -t

Faut bien lire le message retourné, si le retour est syntax is ok et test is successful tous va bien.

Et on oublie pas de redémarrer le serveur web nginx :

sudo systemctl restart nginx

Configuration de sécurité pour les sessions

On va aussi faire une petite modifications pour le fichier /etc/php/8.1/fpm/php.ini

sudo nano /etc/php/8.1/fpm/php.ini

On cherche session.cookie_httponly et on rajoute on comme ceci :

Puis on peut redémarrer le daemon php8.1-fpm pour prendre en compte les modifications en exécutant cette commande :

sudo systemctl restart php8.1-fpm

Installation finale avec le navigateur

Sur un navigateur on tape l'adresse ip de notre serveur ou le nom de domaine si on en a et si on l'a bien ajouter dans la directive server_name dans le fichier de config nginx glpi.conf

On choisit la langue :

Puis l'acceptation de la licence :

On débute l'installation

On vérifie que tous est bien prêts pour l'installation

Ensuite, dans cette étape on renseigne le serveur de base de donnée MariaDB, alors comme le serveur de base de donnée est héberrger au meme endroit que GLPI donc c'est localhost.

Utilisateur SQL : c'est l'utilisateur qu'on crée dans MariaDB et on lui a attribué tous les privileges sur la base de donnée glpi_db

Mot de passe SQL : c'est le mot de passe de l'utilisateur SQL.

Puis on choisit la base qu'on a crée auparavant glpi_db

On continue

On continue aussi et on choisit si on veut envoyer des statistiques d'usage.

On termine l'installation en cliquant sur continuer

Et la GLPI est prêts à l'utilisation.

Dans le screen précedent on a les identifiants et mots de passe par défaut pour se connecter à GLPI.

Finalement on va supprimer le fichier install/install.php en exécutant cette commande :

sudo rm /var/www/glpi/install/install.php