GLPI - Installation (standalone) Difficulté : Intermédiaire Notions : Stack LAMP, GLPI, ITIL I. Introduction Info : Cette documentation s'applique à GLPI v11 et supérieur.  Cette procédure vise à décrire l'installation de GLPI sur un serveur DEBIAN 13 / UBUNTU 24. Elle couvrira dans ce cas l'installation sur un serveur dit "standalone". C'est à dire un serveur dédié sur lequel tous les composants seront installés et qui ne dépendra, de fait, d'aucun autre serveur pour fonctionner. Cependant, l'installation pourrait aussi bien être faite sur des serveurs séparés et/ou des serveurs existants mutualisés à côté d'autres services (par exemple la DB sur un serveur mutualisé et le site web sur un autre serveur apache contenant déjà plusieurs virtualhosts). Elle a été testée avec GLPI 11 sur ubuntu 24.04 LTS. Prérequis : 1 à 2 VCPU 2 à 4Go RAM 30Gb Disque un stack LAMP (détaillé ci-dessous) II. Installation stack LAMP pour GLPI 2.1 Installation du stack Procéder à une mise à jour des repo avec : apt update Installer les paquets de bases : apt install -y mysql-server apache2 libapache2-mod-php php Attention : Sur Debian, le paquest mysql-server est remplacé par MariaDB. Donc 'mariadb-server'. 2.2 Installation des modules GLPI requiers tout un tas de modules complémentaires pour fonctionner correctement. Beaucoup sont nécessaire, mais il peuvent tous être installés en une fois grâce à la commande ci-après. Obligatoires : (dom, fileinfo, filter, tokenizer) --> regroupés dans php-common : utilisés par GLPI core pour fonctionner. (libxml, simplexml, xmlreader, xmlwriter) --> regroupés dans php-xml : utilisés pour la gestion des fichiers XML. php-curl : utilisé pour pull les fichiers et plugins depuis internet et le marketplace. php-gd : utilisé pour la manipulation des fichiers images. php-intl : utilisé pour l'internationalisation. php-mysql : utilisé pour la connexion à la base de donnée. (session) --> inclus dans php-common : utilisé pour la gestion des sessions. php-zlib : utilisé pour les communications compressées avec les agents d'inventaire, la décompression des plugins du marketplace et la génération des PDF. php-bcmath : utilisé pour la génération des QRcodes. php-mbstring : utilisé pour la gestion et la conversion des chaînes de caractères multibits. (openssl) --> inclus dans php-common : utilisé pour le chiffrement de la communication avec les agents et le SSO via Oauth2. Optionnels : php-bz2, php-Phar, php-zip : Permettent un support étendu des types d'archives gérables. php-exif : augemente la sécurité sur la validation des images. php-ldap : utilisé pour la gestion des authentifications externes php-openssl : utilisé pour l'envoi de mails utilisant SSL/TLS Pour tout installer en une fois : apt install -y php-{common,mysql,xml,apcu,fpm,xmlrpc,curl,gd,intl,bcmath,mbstring,bz2,phar,zip,exif,ldap} III. Préparation du stack 3.1 Préparation BDD Optionnel - Sécuriser le serveur Mysql / MariaDB La première chose à faire est de préparer la base de donnée. Tout d'abord, sécuriser à minima l'installation avec la commande : mysql_secure_installation Activer le composant 'Validate Password'. Celui-ci forcera l'utilisation de mots de passes sécurisés. Appliquer la stratégie de mot de passe fort avec '2'. Supprimer l'utilisateur anonyme.   Retirer l'autorisation de connexion à distance pour root.   Supprimer la base de test.   Une fois l'ensemble des changements effectués, le serveur va demander à recharger la table de privilèges. Valider. Il faudra créer la base de donnée et l'utilisateur qui fera le lien avec celle-ci. Passer en 'su' et se connecter à la base de donnée avec : mysql -u root -p Info : -u spécifie que la connexion se fait avec l'utilisateur spécifique donné, -p spécifie d'utiliser le mot de passe (système) pour authentifier la connexion. Une fois connecté, il faudra utiliser les commandes SQL suivantes : Créer la base de donnée. CREATE DATABASE glpi; Pour voir si la base existe : SHOW DATABASES; Créer l'utilisateur : CREATE USER 'glpi'@'localhost' IDENTIFIED BY ''; Vérifier que l'utilisateur est bien créé : SELECT User,Host FROM mysql.user WHERE User='glpi'; Donner les droits à l'utilisateur GLPI sur la base de donnée glpi : GRANT ALL PRIVILEGES ON glpi.* TO 'glpi'@'localhost'; Quitter l'invite de commande SQL : EXIT 3.2 Préparation PHP Il peut être utile d'effectuer un certain nombre d'ajustements sur PHP pour optimiser le fonctionnement de GLPI. Pour cela, éditer le fichier '/etc/php//apache2/php.ini' Modifier les valeurs suivantes : file_uploads = on upload_max_filesize = 10M max_execution_time = 600 session.auto_start = off session.use_trans_sid = 0 session.cookie_httponly = on 3.3 Activation des modules apache2 et de  Activer les modules apache nécessaire au bon fonctionnement du site. a2enmod proxy_fcgi setenvif rewrite Activer la configuration FPM. a2enconf php*-fpm IV. Installation GLPI 4.1 Télécharger GLPI & configurer apache2 Récupérer le lien de l'archive GLPI en .tar.gz à installer sur : Releases · glpi-project/glpi ici, pour GLPI 11 : 'https://github.com/glpi-project/glpi/archive/refs/tags/11.0.2.tar.gz' Se placer dans le répertoire '/var/www/' et télécharger l'archive avec : wget https://github.com/glpi-project/glpi/archive/refs/tags/11.0.2.tar.gz Supprimer le dossier par défaut 'html'. rm -r /var/www/html Décompresser l'archive téléchargée : tar -xvzf ./.tar.gz Renommer le répertoire extrait en 'glpi'. mv glpi-/ glpi Afin de rendre le dossier accessible au serveur web, changer le propriétaire de l'objet. chown -R www-data glpi/ 4.2 Configurer apache Aller dans le répertoire '/etc/apache2/sites-available'. Désactiver tous les sites web publiés par apache avec : a2dissite * Créer un fichier 'glpi.conf' et y coller le contenu suivant : ServerName URLDuGLPI DocumentRoot /var/www/glpi/public Require all granted RewriteEngine On # Redirect all requests to GLPI router, unless file exists. RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L] Activer le site. a2ensite glpi.conf Redémarrer le service apache2. service apache2 restart Vérifier l'état des services, les 3 services suivants doivent être up : mysql php8.3-fpm apache2 service --status-all 4.2 Terminer l'installation Se connecter sur le serveur en Web avec un navigateur web : "http:///" Cliquer sur "Aller à la page d'installation". Sélectionner la langue, ici 'français'. Puis cliquer sur 'OK'. Accepter le contrat de licnce en cliquant sur "Continuer". Comme c'est une nouvelle installation, cliquer sur 'Installer'. L'installer fait une vérification des prérequis, si tout est OK, cliquer sur "Continuer". Configurer la connexion à la base SQL en entrant les détails de la connexion. Puis cliquer sur "Continuer". Serveur SQL : "localhost" (vu que la base est installée localement sur la machine). Utilisateur : l'utilisateur créé plus haut pour la connexion à la base de donnée. Mot de passe : le mot de passe de l'utilisateur SQL créé plus haut. Sélectionner la base de donnée GLPI précédemment créée. Puis cliquer sur "Continuer". La base de donnée va être initialisée. Attendre la fin de la création. A la fin de la création l'écran récapitulatif s'affiche. Cliquer sur "Continuer". Décocher "Envoyer statistiques d'usage". Puis cliquer sur "Continuer". Valider simplement l'écran suivant. Enfin, prendre connaissance des éléments de connexion par défaut et cliquer sur "Utiliser GLPI". V. Conclusion La page de connexion est désormais accessible. Comme vu à l'étape précédente, les informations de connexion sont "glpi / glpi". 2 dernières actions sont nécessaires : Désactiver les données de démonstration Changer les mots de passe des comptes par défaut. Les mots de passe peuvent êtres changés dans : "Administration --> utilisateurs", puis changer les mots de passes ou désactiver les comptes si ils ne seront pas utilisés.