Au programme dans ce post, installation de GLPI 10.x sur une VM Debian (sans GUI). De grosses modifications au niveau recommandations et prérequis sont arrivées depuis la version 10.0.7 de GLPI, aussi vu les nombreuses demandes par mail émises ces derniers temps, cet article s’efforcera de les respecter le plus possible mais certaines configurations ne sont pas obligatoires, à vous de voir à quel point vous souhaitez pousser votre install. N’oubliez pas également d’adapter le tuto selon votre infra car ce n’est ici qu’une base.

Comme le dit souvent un gars en rouge qui saute sur des tortues, navigue dans des tuyaux et balance des saloperies de peaux de bananes : Let’s go ! laugh


Installation de GLPI 10 sous Debian 12

GLPI est une solution logicielle open source qui permet de traiter les demandes de support des utilisateurs et de gérer son parc informatique, c’est un outil ITSM.

Info + : Pour plus d’informations sur GLPI, consulter l’article Introduction au logiciel GLPI

Il est possible de l’installer sur des machines Linux, Mac et Windows mais j’ai fait le choix de l’installer sur une machine Debian en version 12.1 sans interface graphique.

La Debian est ici une machine virtuelle avec les configurations suivantes :

    • CPU : 2 (1 mini)
    • RAM : 4 Go (2 Go mini)
    • Stockage : 20Go
    • Réseau : Bridged (accès par pont)
    • Adresse IP : récupération automatique depuis le DHCP (IP, Masque, Passerelle et DNS)

Démonstration en vidéo disponible au lien suivant : Installer GLPI 10 sous Debian 12. La vidéo peut différer quelque peu de l’article (installation de GLPI version 10.0.9 sur la vidéo), elle n’est là que pour illustrer ce tuto et aider à mieux visualiser les manipulations.

Accès rapide aux différentes parties de cet article : 

      1. BONUS : Contrôle à distance de la machine Debian en SSH
      2. Installation des packages nécessaires sur le serveur
      3. Configuration du service de bases de données
      4. Téléchargement de GLPI
      5. FACULTATIF : Configuration des emplacements des dossiers et fichiers de GLPI
      6. FACULTATIF : Configuration du service web
      7. Configuration finale de GLPI via interface web

 

1. BONUS : Contrôle à distance de la machine Debian en SSH 

Avant de démarrer la réalisation de ce tuto, je vous conseille plus que vivement d’installer OpenSSH Server sur la VM Debian, cela est plus pratique pour administrer un serveur Linux distant (et faire des copier/coller de texte laugh ). Voici la commande :

apt install openssh-server -y

Et c’est tout ! A partir de ce point, vous pouvez directement vous connectez à distance à la machine en utilisant un terminal ou via un émulateur de terminal tel que Putty.

Récupérez au préalable l’IP de la machine GLPI avec la commande « ip a » :

Si vous utilisez un terminal classique type invite de commande chez Windows, tapez la commande suivante pour vous connecter :

ssh nom-user@IP-ou-nom-serveurGLPI

Info + : Par défaut et par mesure de sécurité, le compte root ne peut pas se connecter en ssh. Il faut donc utiliser un autre compte disposant des droits sudo de préférence, comme par exemple celui que vous avez créé lors de l’installation de Debian.

Si vous utilisez Putty, saisissez simplement l’adresse IP ou le nom du serveur GLPI en veillant bien à ce que le port soit le 22 (port par défaut du protocole SSH) et cliquez sur Open (ou faites Entrée).

S’il s’agit de la 1ère connexion distance au serveur depuis votre machine, vous verrez un message d’avertissement (que vous passiez par putty ou non), cliquez simplement sur OUI ou saisissez YES pour continuer.

Vous pouvez ensuite vous connecter avec un compte utilisateur (une fois encore pas le compte root mais un user qui a les droits sudo de préférence sinon vous serez vite bridé…).

Vous pouvez ensuite passer en super utilisateur root si vous le souhaitez avec la commande « su – ». Il ne vous restera qu’à saisir le mot de passe du compte root.

C’est tout pour cette étape “bonus”, passons maintenant au sujet qui nous intéresse smile

 

2. Installation des packages nécessaires sur le serveur

Bon c’est bon, tout le monde est prêt ? OK !

Alors comme d’habitude, on commence comme par mettre à jour la machine avec la commande suivante :

apt update && apt upgrade -y

On va installer les applications nécessaires pour transformer notre serveur en LAMP.

Info ++ : Selon les prérequis de GLPI, la version minimum de PHP supportée au moment de la rédaction de cet article (juillet 2023) est la 7.4. Cette version de PHP n’est plus maintenue et va provoquer une petite alerte sur votre GLPI. Il est fortement recommandé d’utiliser au minimum la version 8.2 de PHP actuellement. Attention cependant : PHP en version 8.x est disponible directement dans les dépôts de Debian 12  Bookworm, il n’est donc pas nécessaire de préciser la version lors de l’installation des packages. Par contre ce n’est pas le cas par défaut sous Debian 11 ou antérieur qui installeront la 7.4, dans ce cas il faudra préciser « php8.2 » par exemple ou encore « php8.2-ldap » pour une extension lors de l’installation du package.

apt install apache2 php mariadb-server -y

Info + : LAMP signifie L pour Linux qui est le système d’exploitation, A pour le service web qui est Apache2 (Si vous utilisez le service web Nginx à la place d’Apache2, cela devient LEMP), M pour le service de bases de données MariaDB ou MySQL et P pour le langage PHP. Toutes ces applications mises ensemble forment ce qu’on appelle une « pile LAMP », on peut voir cela comme une « méga-appli ». Sous Windows, cela s’appelle WAMP, sous MAC OS ça sera MAMP. Il existe également XAMPP, le X signifie compatible multiplateforme donc utilisable sous Windows, Mac et Linux, et le second P représentant le langage Perl.

Ensuite, nous allons installer toutes les dépendances donc pourrait avoir besoin GLPI (elles ne sont pas toutes obligatoires/utiles mais pour éviter les problèmes par la suite, nous installons tout d’un coup cool ).

apt install php-mysql php-mbstring php-curl php-gd php-xml php-intl php-ldap php-apcu php-xmlrpc php-zip php-bz2 php-imap -y

Voilà qui est fait, jusqu’ici tout va bien. smile

 

3. Configuration du service de bases de données

Nous allons maintenant sécuriser l’accès au service de base de données. Lancez la commande suivante :

mysql_secure_installation

Info + : La commande « mariadb-secure-installation » fonctionnera également de la même façon, j’utilise toujours directement les commandes de mysql par habitude seulement.

Le mot de passe de l’utilisateur root est demandé. Il ne s’agit pas ici du mot de passe de l’utilisateur root sur la machine elle-même mais de l’utilisateur SQL (base de données). A ce stade, aucun mot de passe ne lui a été configuré, c’est donc ce que nous allons faire. Appuyez simplement sur Entrée.

Aux questions posées, appuyez sur Entrée pour répondre « yes » directement.

L’une des questions vous demande justement si vous voulez attribuer un mot de passe au compte root pour accéder au service de base de données. Appuyez sur Entrée pour dire Oui.

Saisissez 2 fois le mot de passe que vous voulez donner au compte SQL root pour. Attention, aucun symbole ne va s’afficher pendant la saisie, soyez vigilant à votre frappe !

Vous pourrez par la suite répondre Yes à toutes les autres questions posées.

Maintenant que l’accès aux bases de données est sécurisé, nous allons pouvoir nous y connecter avec le compte root et le mot de passe que nous venons de lui définir :

mysql -u root -p

Commençons par créer la base de données qui sera utilisée par GLPI. Dans nom cas, je vais nommer cette base de données « db_glpi » mais vous pouvez la nommer selon vos désirs, il faut juste vous en souvenir pour la suite. Utilisez la commande suivante (les “;”  en fin de ligne est nécessaire) :

create database db_glpi;

Nous allez ensuite créer un utilisateur de base de données et lui donner des droits sur cette base de données. La commande suivante va créer un utilisateur ici nommé « admindb_glpi », lui attribuer le mot de passe « votre-MDP » et lui donner tous les privilèges (une sorte de « contrôle total » sur la base de données « db_glpi »). Une fois encore, à vous de définir les noms et mot de passe que vous souhaitez (le “;” en fin de ligne est toujours nécessaire) :

grant all privileges on db_glpi.* to admindb_glpi@localhost identified by "votre-MDP";

C’est terminé pour cette partie, vous pouvez quitter mysql ou mariadb avec la commande suivante :

exit

La base de données est prête, passons maintenant au téléchargement de GLPI sur notre serveur !

 

4. Téléchargement de GLPI

Info ++ : La version déployée dans ce tuto est la dernière disponible au moment de la rédaction (ou de la mise à jour de l’article). Pensez donc bien à adapter les commandes qui vont suivre avec vos numéros de version. Pour connaître la dernière version stable publiée, rendez-vous sur le site officiel de GLPI ou dans le dépôt Github du projet GLPI.

Placez vous dans le répertoire de votre choix (moi perso c’est dans le dossier temporaire /tmp) et téléchargez la dernière version disponible de GLPI sur Github :

cd /tmp
wget https://github.com/glpi-project/glpi/releases/download/10.0.14/glpi-10.0.14.tgz

Décompressez l’archive de GLPI directement dans le répertoire par défaut du service web qui est /var/www/html :

tar -xvzf glpi-10.0.14.tgz -C /var/www/html

Rendez l’utilisateur des services web (nommé www-data) propriétaire de ces nouveaux fichiers :

chown -R www-data /var/www/html

Vous pouvez vérifier que tout est OK en listant le contenu du répertoire avec la commande « ls -l /var/www/html ». Vous pourrez alors constater la présence du répertoire glpi et que le propriétaire est bien l’utilisateur nommé « www-data ».

GLPI est en place !

—————————

A partir de ce point, GLPI est presque déjà fonctionnel. Cependant, afin de respecter les prérequis (ICI) et les recommandations de l’éditeur (ICI) et de sécuriser un peu tout cela, ils restent encore quelques étapes importantes. Les configurations décrites dans les 2 chapitres suivants ne sont pas obligatoires mais fortement recommandées afin de ne pas rencontrer ces alertes

Ce premier screen montre les warnings émis par GLPI lors de l’installation de ce dernier via son interface web. Ce n’est pas bloquant, vous aurez juste à descendre en bas de la page d’installation de GLPI et cliquer sur Continuer.

Ce second screen est issu du tableau de bord de GLPI après la première connexion. Les deux dernières alertes concernent la configuration du service web qui n’est pas conforme avec les recommandations de l’éditeur. Une fois encore, ce n’est pas bloquant, vous pouvez simplement ignorer la présence de ces messages.

Si vous ne souhaitez pas suivre les 2 prochaines étapes facultatives, rendez-vous dès maintenant au chapitre 7 pour poursuivre votre installation : Configuration finale de GLPI via interface web

—————————

5. FACULTATIF : Configuration des emplacements des dossiers et fichiers de GLPI

Nous allons suivre une partie de recommandations de GLPI présentent dans la documentation. Nous allons séparer une partie des fichiers de GLPI afin de sécuriser le tout un minimum.

Créez un dossier nommé « glpi » dans /etc :

mkdir /etc/glpi

Dans ce nouveau dossier, créez un fichier nommé « local_define.php » :

nano /etc/glpi/local_define.php

Y insérer le contenu suivant (bien respecter la syntaxe) :

<?php
define('GLPI_VAR_DIR', '/var/lib/glpi');
define('GLPI_LOG_DIR', '/var/log/glpi');

Quittez le fichier en appuyant sur les touches Ctrl + X, puis ensuite sur O pour valider l’enregistrement des modifications puis sur la touche Entrée pour conserver le nom du fichier.

Déplacez le dossier « config » situé actuellement dans /var/www/html/glpi dans /etc/glpi :

mv /var/www/html/glpi/config /etc/glpi

Rendez www-data propriétaire de /etc/glpi et de son contenu :

chown -R www-data /etc/glpi/

N’oubliez pas vous pouvez vérifier le contenu d’un dossier et le propriétaire de ce contenu grâce à la commande « ls -l /etc/glpi » :

Poursuivons en déplaçant le dossier « files » de glpi dans /var/lib/glpi :

mv /var/www/html/glpi/files /var/lib/glpi

Ensuite nous allons préparer le dossier de logs de GLPI et rendre, une fois encore, l’utilisateur www-data propriétaire avec les 2 commandes suivantes :

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

Il va maintenant falloir faire comprendre à GLPI où il va devoir chercher les fichiers et ses configs. Cela est en fait décrit dans le fichier « local_define.php » que l’on a créé précédemment mais il faut tout de même dire à GLPI d’aller checker cela dans /etc/glpi car il ne peut pas le deviner. smile

Pour cela, créez un fichier nommé « downstream.php » dans /var/www/html/glpi/inc :

nano /var/www/html/glpi/inc/downstream.php

Y insérer le contenu suivant (bien respecter la syntaxe) :

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

Voilà pour les emplacements recommandés. Passons ensuite à l’étape suivante : la configuration d’Apache, le service web.

 

6. FACULTATIF : Configuration du service web

Nous allons modifier le fichier php.ini situé dans /etc/php/votre-version-de-php/apache2 (pour moi php version 8.2) :

nano /etc/php/8.2/apache2/php.ini

Dans ce fichier, sans rien toucher d’autres, recherchez la ligne « session.cookie_httponly  = » et ajoutez « on » après le égal. Vous pouvez ensuite quitter le fichier en enregistrant les modifications et sans le renommer. Cette manipulation aura pour but de refuser l’accès à un cookie issu d’un langage de navigateur type javascript, car ils peuvent être corrompus et donc infecter le système.

Info + : Afin de ne pas parcourir tout un fichier (trop long…) pour trouver un paramètre précis, appuyez simultanément sur les touches Ctrl et W de votre clavier. Dans la partie inférieure de l’écran, saisissez le paramètre recherché et appuyez sur Entrée, vous serez alors directement placé dessus.

Ensuite pour terminer sur la grosse partie configuration, il faut créer un virtualhost dans le service web spécialement dédié au site web de notre GLPI. Un virtualhost est un fichier configuré sur apache permettant de faire cohabiter plusieurs sites web différents sur la même machine. Chaque virtualhost est configuré pour l’un des sites web hébergé sur le serveur.

Créez dans le dossier d’apache2 un fichier nommé « glpi.conf » :

nano /etc/apache2/sites-available/glpi.conf

Y insérer le contenu suivant basé sur la doc GLPI, une fois encore en adaptant à votre environnement (bien respecter la syntaxe) :

<VirtualHost *:80>
# ServerName vm-glpi
ServerAlias 192.168.3.80
DocumentRoot /var/www/html
Alias "/glpi" "/var/www/html/glpi/public"
<Directory /var/www/html/glpi>
Require all granted
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>
</VirtualHost>

Info ++ : J’utilise ici un « ServerAlias » avec l’IP de mon serveur GLPI car je ne suis pas sur un domaine, mon DNS n’est donc pas configuré actuellement pour communiquer avec le « ServerName » que j’ai défini. Cela signifie que je vais aller sur GLPI grâce à son IP, et pas son nom. Si vous êtes dans un domaine avec le DNS configuré (hôte A faisant pointer le nom de votre serveur GLPI sur son IP et éventuellement un CNAME, un alias), utilisez directement la directive « ServerName » avec le nom sur lequel vous accéderez à GLPI via une interface web, il vous suffit de décommenter la ligne ServerName en supprimant le # devant.
La directive « Alias » est utile uniquement quand votre glpi est installé dans un sous-dossier du dossier par défaut des services web, par exemple dans ce tuto dans /var/www/html/glpi au lieu de /var/www/glpi.
Voici un exemple d’un fichier glpi.conf dans lequel glpi est directement dans le dossier racine du service web et pour lequel la connexion se fera à l’aide de son nom ou d’un alias sur l’URL http://glpi :

Une fois ceci fait, activez un module apache qui permet de faire de la redirection d’URL :

a2enmod rewrite

Et enfin, activez le fichier de configuration web spécialement créé précédemment pour glpi :

a2ensite glpi.conf

Il ne reste plus qu’à redémarrer le service apache2 pour appliquer toutes les modifications apportées :

systemctl restart apache2

C’est tout pour cette partie, le serveur est prêt, maintenant dernière ligne droite !

 

7. Configuration finale de GLPI via interface web

Les fichiers pour GLPI sont prêts, l’installation va se poursuivre directement via une interface web.

Accédez à la machine depuis n’importe quel PC  sur le même réseau en vous rendant sur à l’URL suivante :

http://ip_ou_nom_de_votre_machine_glpi/glpi

Vous arrivez sur la page du setup de GLPI. Sélectionnez le Français dans la liste déroulante et cliquez sur OK.

Acceptez les conditions d’utilisation pour poursuivre.

Cliquez sur le bouton Installer pour lancer le setup.

Une série de test sera lancée par le setup pour s’assurer que tous les prérequis nécessaires au bon fonctionnement de GLPI sont remplis. Si vous avez correctement suivi ce tuto, il ne devrait y avoir que des coches vertes, si ce n’est pas le cas, corrigez d’abord les erreurs présentes qui peuvent être bloquantes. . Cliquez sur Continuer.

Il reste à saisir les informations sur la base de données destinées à GLPI que nous avons précédemment créée. Saisissez localhost pour spécifier que la machine actuelle héberge à la fois le site web de GLPI et la base de données (si la base de données est stockée sur une autre machine, saisissez son adresse IP ou son nom). Rentrez ensuite le nom de l’utilisateur qui a tous les privilèges sur cette base de données et son mot de passe.

Sélectionnez ensuite la base de données créée spécialement pour GLPI, il n’y a qu’à cocher le cercle devant le nom de la base de données que vous aurez créée avant de cliquer sur Continuer.

Le setup va contacter la base de données pour s’assurer que tout est OK. Patientez quelques secondes avant de pouvoir continuer.

Choisissez d’envoyer ou pas des statistiques sur votre utilisation de GLPI à l’équipe qui gère le projet et poursuivez.

On vous informe ensuite qu’il existe une version commerciale de GLPI avec un service support dédié. Vous pouvez également si vous le souhaitez faire un don. Cliquez sur Continuer.

L’installation est désormais terminée. Notez bien les identifiants par défaut qui permettront de rentrer dans l’interface web de GLPI. Ils seront à changer par la suite. Cliquez sur Utiliser GLPI.

Connectez vous avec les identifiants par défaut du compte GLPI qui est le super-administrateur.

Vous voilà maintenant connecté au tableau de bord de votre outil GLPI !

Un message d’avertissement vous informe que par sécurité il faudra changer les mots de passe par défaut des 4 utilisateurs créés automatiquement et supprimer le fichier « install.php ».

Si vous cliquez sur le nom de l’un des utilisateurs, vous arriverez directement dans ses configurations. Vous pourrez alors lui attribuer un nouveau mot de passe.

Pour supprimer le fichier install.php, la commande est la suivante :

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

Info + : Vous pouvez également si vous le souhaitez supprimer l’intégralité du dossier install de GLPI plutôt que seulement le fichier install.php. Dans ce cas, utilisez cette commande : rm -r /var/www/html/glpi/install/

En actualisant la page d’accueil de GLPI, les avertissements auront disparu.

Votre GLPI est désormais prêt à fonctionnel !

Les différents menus latéraux vous permettront par exemples de gérer votre parc, vos tickets d’incidents, de centraliser vos contrats, fournisseurs ou autres, de gérer les projets du SI et d’administrer GLPI.

 

Voilà qui conclut ce tuto sur l’installation de GLPI 10 ! Vous disposez désormais d’un outil complet pour gérer efficacement votre parc informatique. Faites en bon usage !

 hi


[Tuto] Installer GLPI 10 sous Debian 12

Articles pouvant vous intéresser