Introduction
Cette procédure décrit les étapes nécessaires pour installer et configurer un serveur GLPI (Gestion Libre de Parc Informatique) sur un serveur Apache avec un certificat SSL auto-signé. GLPI est un puissant système de gestion des actifs IT qui facilite le suivi, la gestion et la maintenance du parc informatique.Nous allons aborder plusieurs aspects :
- Installation d'Apache, de PHP et de MariaDB pour supporter GLPI.
- Configuration SSL pour sécuriser l'accès via HTTPS.
- Mise en place de GLPI avec un VirtualHost dédié.
Voici les étapes à suivre pour la mise en place du serveur GLPI sur un système Linux:
Installation des prérequis (Apache, PHP, MariaDB)
Mise à jour des paquets et installation des logiciels requis
apt-get update
apt-get install apache2 php mariadb-server -y
Installation des extensions PHP nécessaires pour GLPI
apt-get install php-xml php-common php-json php-mysql php-mbstring php-curl php-gd php-intl php-zip php-bz2 php-imap php-apcu -y
apt-get install php-ldap -y
Sécurisation de MariaDB
# Répondez aux questions par (Y, N, Y, Y)mysql_secure_installation
Création de la base de données pour GLPI
Connectez-vous à MySQL en tant qu'administrateur et créez la base de données ainsi que l'utilisateur pour GLPI.
Dans MySQL :mysql -u root -p
CREATE DATABASE db_glpi;
GRANT ALL PRIVILEGES ON db_glpi.* TO 'glpi_adm'@'localhost' IDENTIFIED BY 'MOTDEPASSE.';
FLUSH PRIVILEGES;
EXIT;
Téléchargement et installation de GLPI
Téléchargez la dernière version de GLPI et extrayez-la dans le répertoire de votre serveur web.
cd /tmp
wget https://github.com/glpi-project/glpi/releases/download/10.0.10/glpi-10.0.10.tgz
tar -xzvf glpi-10.0.10.tgz -C /var/www/
chown www-data:www-data /var/www/glpi/ -R
Organisation des fichiers de configuration et de données de GLPI
Créez des répertoires spécifiques pour stocker les fichiers de configuration, logs et autres données.
mkdir /etc/glpi
chown www-data:www-data /etc/glpi/
mv /var/www/glpi/config /etc/glpi/
mkdir /var/lib/glpi
chown www-data:www-data /var/lib/glpi/
mv /var/www/glpi/files /var/lib/glpi/
mkdir /var/log/glpi
chown www-data:www-data /var/log/glpi
Configuration des chemins de fichiers dans GLPI
Modifiez le fichier downstream.php pour pointer vers les nouveaux chemins de configuration et de fichiers.
Ajoutez le contenu suivant :nano /var/www/glpi/inc/downstream.php
Créez ensuite le fichier local_define.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';
}
Ajoutez le contenu suivant :nano /etc/glpi/local_define.php
<?php
define('GLPI_VAR_DIR', '/var/lib/glpi/files');
define('GLPI_LOG_DIR', '/var/log/glpi');
Configuration d’Apache pour GLPI
Création du VirtualHost pour le site GLPI sur HTTP (port 80)
Ajoutez le contenu suivant :nano /etc/apache2/sites-available/glpi.NOM.conf
Activer le site et les modules nécessaires<VirtualHost *:80>
ServerName glpi.NOM.local
DocumentRoot /var/www/glpi/public
<Directory /var/www/glpi/public>
Require all granted
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>
</VirtualHost>
a2ensite glpi.NOM.conf
a2dissite 000-default.conf
a2enmod rewrite
systemctl restart apache2
Installation de PHP-FPM et configuration pour GLPI
Installez PHP-FPM et configurez Apache pour l'utiliser.
apt-get install php8.2-fpm -y
a2enmod proxy_fcgi setenvif
a2enconf php8.2-fpm
systemctl reload apache2
Modification du fichier php.ini pour améliorer la sécurité
Ajoutez ou modifiez la ligne suivante :nano /etc/php/8.2/fpm/php.ini
session.cookie_httponly = on
Intégration de PHP-FPM dans le VirtualHost
Modifiez le fichier VirtualHost HTTP pour utiliser PHP-FPM.
Ajoutez la section suivante dans le VirtualHost :nano /etc/apache2/sites-available/glpi.NOM.conf
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost/"
</FilesMatch>
Rechargez Apache après ces modifications :
systemctl restart apache2
Configuration SSL pour Apache
Création du certificat SSL auto-signé
Créez un répertoire pour stocker les fichiers SSL et générez un certificat auto-signé.
Création du VirtualHost SSL (port 443)mkdir /etc/apache2/ssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache-selfsigned.key -out /etc/apache2/ssl/apache-selfsigned.crt
Créez un fichier de configuration pour le site en HTTPS.
Ajoutez le contenu suivant :nano /etc/apache2/sites-available/glpi.NOM.local_ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName glpi.NOM.local
DocumentRoot /var/www/glpi/public
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache-selfsigned.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache-selfsigned.key
<Directory /var/www/glpi/public>
Require all granted
Options FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
</IfModule>
Activer le site SSL et redémarrer Apache
a2ensite glpi.NOM.local_ssl.conf
systemctl restart apache2
Vérification du port SSL
Vérifiez que le port 443 est bien utilisé.
sudo lsof -i :443
Suppression du fichier d’installation
Une fois l’installation de GLPI terminée via le navigateur, supprimez le fichier d'installation pour des raisons de sécurité.
rm /var/www/glpi/install/install.php
Installation rapide de l'Agent GLPI sur Windows 10
Télécharger l'Agent GLPI
- Allez sur la page des releases de GLPI Agent.
- Téléchargez le fichier glpi-agent-<version>-win32-x64.exe.
Installation
- Lancez l'installateur téléchargé (.exe).
- Suivez les instructions de l’assistant d'installation.
- Type d'installation : Sélectionnez "Standard".
- URL du serveur GLPI : Entrez https://glpi.bonafoux.local/front/inventory.php.
- Cochez Démarrer l'agent au démarrage de Windows.
- Cliquez sur Installer pour finaliser.
Vérification
- L'agent GLPI démarrera automatiquement.
- Les informations du poste Windows devraient remonter sur le serveur GLPI.
Avec cette procédure, GLPI est maintenant installé, sécurisé avec SSL, et l'agent GLPI est configuré pour remonter automatiquement les informations des postes clients.