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