Introduction
GLPI est un outil de gestion de parcs informatiques, de ticketing (pour du helpdesk), et sert à d'autres choses... Il est essentiel en entreprise et on va voir comment l'installer ici.
Prérequis
- Debian 11/12
- Un serveur web Apache2, Nginx, IIS, etc.. (Ici nous utliserons Apache2)
- Une base de donnée MariaDB
- PHP
- Réglages des la timezone
Configurer les dépendances
Installer les dépendances nécessaires
Après l'installation de votre Debian sur une VM ou en distribution, vous devez d'abord installer les dépendances nécessaires
sudo apt install apache2 php mariadb-server
Puis tout un tas d'extensions PHP
sudo apt-get install php8.2-fpm php-xml php-common php-json php-mysql php-mbstring php-curl php-gd php-intl php-zip php-bz2 php-imap php-apcu php-ldap
Configurer la timezone
timedatectl set-timezone "Europe/Paris"
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -p -u root mysql
Créer la base de données
Entrez dans le terminal puis entrez la commande suivante : sudo mysql_secure_installation
. Ca va vous faire un prompt pour commencer à configurer l'installation de mysql.
Ici c'est comme pour Pôle Emploi vous allez répondre de la manière suivante :
- Switch to unix_socket -> N
- Change the root password -> Y puis configurez votre mot de passe root (pour la db)
- Remove anonymous users -> Y évidemment on veut pas que des petits moribonds accèdent à la db
- Disallow root login remotly -> Y
- Remove test database and acces to it -> Y
- Reload privilege tables now? -> Y
Et vous êtes bons pour la configuration de mysql.
Ensuite on va aller se connecter en tant que root à mysql et créer la db pour glpi
sudo mysql -u root -p # Entrez votre mot de passe dans le prompt qui apparaîtra
Créer la DB
CREATE DATABASE glpidb; #glpidb est le nom de la db vous pouvez mettre ce que vous voulez
GRANT ALL PRIVILEGES ON db23_glpi.* TO glpi_admin@localhost IDENTIFIED BY "@SuperP4ssword"; # Donne tous les priivleges a l'utilisateur glpi_admin
FLUSH PRIVILEGES; # Applique les nouveaux privileges
EXIT
Installer & Configurer GLPI
Installer
On va d'abord devoir clôner le dépôt distant de glpi sur notre machine locale :
wget https://github.com/glpi-project/glpi/releases/download/10.0.10/glpi-10.0.10.tgz
Puis décompresser l'archive vers /var/www (qui est l'endroit par défault pour héberger les sites sur Debian)
sudo tar -xzvf glpi-10.0.10.tgz -C /var/www/
Comme GLPI va être hébergé en tant que site web pour qu'on puisse y accéder il va falloir modifier les propriétaires des dossiers le concernant pour que le groupe www-data utilisé par Apache2/Nginx puisse être le proprio. On va faire cela plusieurs fois dans la suite de l'article
sudo chown www-data /var/www/glpi -R
Configurer
On va devoir créer quelques dossiers puis attribuer les droits propriétaires à www-data
On va déplacer la configuration vers /etc/glpi
sudo mkdir /etc/glpi
sudo chown www-data /etc/glpi/
sudo mv /var/www/glpi/config /etc/glpi
On va déplacer les fichiers, plugins, etc... vers /var/lib
sudo mkdir /var/lib/glpi
sudo chown www-data /var/lib/glpi/
sudo mv /var/www/glpi/files /var/lib/glpi
On crée le répertoir de stockage des logs glpi
sudo mkdir /var/log/glpi
sudo chown www-data /var/log/glpi
Ensuite nous allons devoir configurer GLPI pour qu'il sache où aller chercher tout ça.
On va d'abord créer le fichier downstream.php : sudo nano /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';
}
Puis ensuite créer le fichier local_define.php sudo nano /etc/glpi/local_define.php
<?php
define('GLPI_VAR_DIR', '/var/lib/glpi/files');
define('GLPI_LOG_DIR', '/var/log/glpi');
Pour cette étape on est bon
Configuration Apache2
En premier lieu on va désactiver le site par défault d'Apache2:
sudo a2dissite 000-default.conf
On va créer notre nouveau site avec notre super nom de domaine fraichement acheté, si vous n'en avez pas il sera accessible via 127.0.0.1 ou 127.0.1.1 selon les cas. Créez le fichier sudo nano /etc/apache2/sites-available/votre-nom-de-domaine.conf
<VirtualHost *:80>
ServerName votre-nom-de.domaine
DocumentRoot /var/www/glpi/public
# If you want to place GLPI in a subfolder of your site (e.g. your virtual host is serving multiple applications),
# you can use an Alias directive. If you do this, the DocumentRoot directive MUST NOT target the GLPI directory itself.
# Alias "/glpi" "/var/www/glpi/public"
<Directory /var/www/glpi/public>
Require all granted
AllowOverride All
RewriteEngine On
Options FollowSymlinks
# Redirect all requests to GLPI router, unless file exists.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost/"
</FilesMatch>
</VirtualHost>
Activez le rewrite mode qui est désactivé par défault sur Apache
sudo a2enmod rewrite
Puis testez votre configuration
sudo apachectl configtest # Devrait vous retournez OK
Ensuite on va activer ce site :
sudo a2ensite votre-nom-de.domaine
Et redémarrer Apache2 pour prendre nos modifs en compte
sudo systemctl restart apache2
## Utiliser PHP-FPM PHP-FPM est un moteurs de scripts, on pourrait utiliser ***libapache2-mod-phpX.X *** mais celui-ci est plus puissant. Nous l'avons déjà installé tout a l'heure.
On va activer les modules
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.2-fpm
sudo systemctl reload apache2
Et nous allons devoir éditer le php.ini de FPM:
sudo nano /etc/php/8.2/fpm/php.ini
Dans ce fichier faudra rechercher la ligne concernant session.cookie_httponly avec Ctrl+M si vous utilisez nano. Puis vous la mettrez "= on".
Notre virtualHost est déjà configuré pour utiliser FPM grâce au SetHandler :)
Nous pouvons désormais redémarrer les deux services dans cet ordre :
sudo systemctl restart php8.2-fpm.service
sudo systemctl restart apache2
Accéder à l'interface GLPI
Comme dit précedemment vous pouviez tester votre configuration avec apachectl configtest
. En principe si il n'a pas reconnu votre nom de domaine ils vous a dit que c'était quand même OK mais que c'était accessible depuis 127.0.1.1.
Ouvrez votre navigateur puis entrez 127.0.1.1. Vous allez voir apparaître l'interface GLPI. Il va vous demander si vous voulez installer ou mettre à jour vous cliquez sur installer. Ensuite il va vous faire voir toutes les dépendances vous pourrez passer cette étape.
Puis vous allez arriver dans GLPI Setup. Où il vous faudra configurer l'utilisateur sql admin de la db que l'on a fait tout a l'heure (ici : glpi_admin:
- Serveur SQL ->
localhost
- Utilisateur SQL ->
glpi_admin
- Mot de Passe ->
@SuperP4ssword
Vous allez arriver à la séléction de la base de donnée vous devriez voir apparaître le nom de la vôtre, selectionnez-là. Faites continuer et vous êtes bons.
Ensuite vous pourrez vous connecter avec glpi
glpi
et commencer à changer les mots de passes par défault.