GLPI : installation sur un serveur Nginx

Introduction

Dans ce tutoriel, nous allons voir pas à pas comment installer GLPI sur un serveur Nginx / PHP / MariaDB.

Avant de commencer, vous allez avoir besoin d’un serveur Web avec Nginx / PHP / MariaDB d’installés. Si vous avez besoin tout est expliqué dans ce tutoriel : Ubuntu : installer un serveur Web – NGINX / PHP / MariaDB – RDR-IT

Par expérience, l’installation de GLPI sur un serveur Web Nginx offre de meilleur performance qu’avec Apache ou IIS, mais certaines fonctionnalités ne seront pas disponibles comme le SSO.

Préparation de l’environnement

Avant d’attaquer l’installation de GLPI en lui-même, nous allons préparer le serveur. Il convient d’adapter certains éléments à votre environnement.

Création d’un enregistrement DNS

Dans votre zone DNS, créer un enregistrement qui va corresponde à l’url du site GLPI et qui pointe sur l’adresse IP du serveur.

Configuration du vhost

Il faut configurer un vhost (virtual host) qui va répondre à l’enregistrement DNS qui a été créé précédemment

Je suis allergique à l’utilisation de l’hôte par défaut, je préfère utiliser des vhosts qui permettent une meilleure organisation des sites et aussi de mutualiser les ressource d’un serveur en hébergeant plusieurs sites.

Créer les dossiers pour le vhost à l’aide des commandes suivantes :

sudo mkdir /home/www-data/glpi
sudo mkdir /home/www-data/glpi/log
sudo mkdir /home/www-data/glpi/public_html
sudo chown www-data /home/www-data/glpi -R

Les 3 premières lignes vont créer les dossiers pour les fichiers de GLPI et la dernière ligne change le propriétaire.

On va utiliser le fichier default.conf pour créer la configuration du vhost glpi. Copier le fichier à l’aide de la commande ci-après :

sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/glpi.conf

Ouvrir le fichier avec nano :

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

Voici mon fichier de config :

server {
    listen       80;
    server_name  glpi.lab.priv;

    #charset koi8-r;
    access_log  /home/www-data/glpi/log/access.log  main;

    location / {
        root   /home/www-data/glpi/public_html;
        index index.php index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        root           /home/www-data/glpi/public_html;
        #try_files      $uri =404;
        fastcgi_index  index.php;
        fastcgi_pass   unix:/run/php/php7.3-fpm.sock;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;    
   }
}
  • ligne 3 : url du site
  • ligne 6 : emplacement des logs
  • ligne 9 : emplacement des fichiers GLPI
  • ligne 10 : déclaration de index.php
  • ligne 23 : emplacement des fichiers GLPI

Activer le vhost :

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

Test la configuration nginx :

sudo nginx -t

Recharger la configuration :

sudo systemctl reload nginx

Télécharger et copier les fichiers de GLPI sur le serveur

Aller sur le site : https://glpi-project.org/fr/ et télécharger la dernière version.

Décompresser l’archive et envoyer le contenu sur le serveur dans le dossier /home/www-data/glpi/public_html.

Personnellement j’utilise WInSCP pour le faire

En fonction du compte utiliser pour le transfert, repasser la commande ci-après pour changer le propriétaire des fichiers et dossiers de GLPI :

sudo chown www-data /home/www-data/glpi -R

Test du vhost glpi

Avant d’aller plus loin, on va maintenant tester le bon fonctionnement du virtual host.

Depuis un navigateur Internet, aller à l’url configurée pour le site GLPI, la page d’installer doit s’afficher.

Installation les modules PHP pour GLPI

GLPI requière des modules PHP pour fonctionner. Installer les modules complémentaires à l’aide la commande suivante (à adapter en fonction de la version de PHP) :

sudo apt install php7.3-mbstring php7.3-curl php7.3-gd php7.3-xml php7.3-intl php7.3-bz2 php7.3-ldap php7.3-xmlrpc php7.3-zip -y

Redémarrer le service PHP (à adapter en fonction de la version de PHP) :

sudo systemctl reload php7.3-fpm

Création de la base de données

« Dernier élément » de préparation de l’environnement pour GLPI et la création de la base de données et d’un utilisateur, pour cela on va utiliser PHPMYADMIN, si vous avez suivi le turoriel Nginx vous devriez l’avoir.

Aller sur PHPMYADMIN, une fois identifier, cliquer sur Comptes utilisateurs 1.

Cliquer sur Ajouter un compte d’utilisateur 1.

Entrer le nom de l’utilisateur 1 (glpi), saisir un mot de passe (x2) 2, cocher la case Créer une base portant son nom et donner à cet utilisateur tous les privilèges sur cette base 3 et cliquer sur Exécuter 4.

L’utilisateur glpi et la base glpi 1 ont été créés.

Installation de GLPI

Depuis un navigateur Internet, aller à l’url configurée, sélectionner la langue 1 et cliquer sur OK 2.

Accepter la licence 1 et cliquer sur Continuer 2.

Cliquer sur Installer 1.

Normalement tous les tests devraient être bon, cliquer sur Continuer 1.

Entrer l’adresse du serveur MariaDB (127.0.0.1 ou localhost) 1, l’utilisateur (glpi) 2 et le mot de passe associé 3 puis cliquer sur Continuer 4.

Sélectionner la base de données 1 et cliquer sur Continuer 2.

Une fois la base de données initialisée, cliquer sur Continuer 1.

Cette étape peut prendre plusieurs secondes.

Choisir l’envoie d’informations de télémétrie et cliquer sur Continuer 1.

Passer la partie don en cliquant sur Continuer 1.

L’installation est terminée, les identifiants des comptes par défaut sont affichés. Cliquer sur Utiliser GLPI 1.

Entrer les identifiants (glpi/glpi) 1 et cliquer sur Envoyer 2 pour vous connecter.

GLPI est prêt à être utilisé.

Après l’installation

Supprimer le dossier install

Supprimer le dossier install du répertoire GLPI.

Actualiser la page d’accueil, le message doit avoir disparu.

Afficher les paramètres serveur

Ces informations peuvent vous êtes demandées en cas de support, avec un compte super-admin (glpi), cliquer sur Configuration 1 puis sur Générale 2.

Aller sur l’onglet Système 1 pour afficher les paramètres du serveur.

L’onglet performance 1 donne des informations sur les différents mécanismes de performance disponible.

Optimisation serveur pour GLPI

Dans cette partie, je vais vous donner deux astuces pour augmenter les performances serveur de GLPI.

Installer PHP-APCU

L’installation de PHP-APCU peut aussi être faite si vous êtes sur Apache

PHP-APCU est un module PHP de cache d’objet qui permet de stocker en RAM (mémoire vive) certains résultats de requêtes afin d’avoir les résultats plus rapidement. GLPI est prévu pour utiliser ce système.

Pour installer php-apcu entrer la commande suivante :

sudo apt install php-apcu

Une fois l’installation terminée, redémarrer le service php-fpm :

sudo systemctl restart php7.3-fpm

Sur l’onglet performance que l’on a vu précédemment dans la partie Cache des données utilisateur 1 on peut voir que l’extension apcu est maintenant utilisée.

Optimisation des paramètres PHP

Derniers éléments d’optimisation du serveur au niveau de PHP va être de modifier quelques paramètres PHP pour le virtual host GLPI en augmentant la mémoire pour PHP et en autorisant l’envoie de fichier plus volumineux.

Comme on peut le voir sur la capture ci-dessous la limite de mémoire est de 128M, l’upload de fichier est lui limité à 2M.

J’ai créé un fichier phpinfo.php à la racine de GLPI avec la fonction phpinfo(); pour afficher les informations

Ouvrir le fichier de configuration glpi.conf et ajouter les éléments ci-dessous dans la section location ~ .php$

fastcgi_param  PHP_VALUE "memory_limit=\"256M\" 
post_max_size=\"128M\"
upload_max_filesize=\"32M\"";

Recharger la configuration nginx et redémarrer le service PHP pour la prise en compte :

sudo systemctl reload nginx
sudo systemctl restart php7.3-fpm

On peut voir la prise en compte des paramètres :

Cette partie vous explique aussi comment configurer des paramètres (directives) PHP personnalisés à un virtual host sous Nginx.

Vérifier le nombre de processus NGINX

La dernière optimisation que je vais vous présenter dans ce tutoriel est le nombre de processus nginx, pour cela ouvrir le fichier nginx.conf :

sudo nano /etc/nginx/nginx.conf

Vérifier que la directive worker_processes est également au nombre de processeurs, par défaut la valeur est également au nombre de processeurs – 1.

Si vous utilisez une machine virtuelle et que vous augmenter le nombre de processeurs, penser à modifier la valeur de worker_processes.

Si vous apportez une modification redémarrer le service nginx

sudo systemctl restart nginx

Aller plus loin avec GLPI

Maintenant vous êtes prêt à configurer et à utiliser GLPI.

Vous avez plusieurs tutoriels sur GLPI disponible sur le site.

Quelques pistes :



Start the discussion at community.rdr-it.io