Installer GLPI sur Ubuntu
Pour cette installation, nous avons besoin
D'un serveur Linux Ubuntu 22.04 LTS
D'un serveur web - Apache
D'un interpréteur de code - PHP
D'une plateforme de gestion de serveur de base de données - MariaDB dans ce cas
Nous séparons ce processus en 6 étapes :
Installation des composants
Configuration de la base de données
Préparation des fichiers et dossiers pour installer GLPI
Donner les bonnes permissions de dossier et fichiers sur linux pour installer GLPI
Configuration du serveur web et PHP
Démarrage de l'installation web
1 - Installation des composants
Avant de commencer, assurez-vous que votre serveur est à jour
apt update && apt upgrade
Si votre pare-feu est activé, vous devez autoriser les connexions ssh, http et https vers ce serveur. Selon vos politiques de sécurité.
Pour ce post, nous utilisons Apache 2, MariaDB Server, PHP et ses extensions respectives. Si votre système d'exploitation et vos dépôts sont mis à jour, la dernière version stable des extensions est déjà celle téléchargée.
apt install -y apache2 php php-{apcu,cli,common,curl,gd,imap,ldap,mysql,xmlrpc,xml,mbstring,bcmath,intl,zip,redis,bz2} libapache2-mod-php php-soap php-cas
apt install -y mariadb-server
Après que tous les composants soient installés, nous devons suivre les étapes 2 - 6.
2 - Configuration de la Base de Données
MariaDB, par défaut est fourni sans mot de passe par défaut défini pour l'utilisateur root et avec quelques paramètres par défaut qui doivent être correctement configurés.
Sécuriser l'Installation MariaDB
mysql_secure_installation
Recommandation minimale
Changer le mot de passe root
Supprimer les utilisateurs anonymes
Interdire la connexion root à distance
Supprimer la base de données de test
Recharger les tables de privilèges
De plus, puisque GLPI est un outil ITSM global qui peut être utilisé par des personnes du monde entier en même temps, vous aimeriez activer la possibilité pour l'utilisateur du service de base de données GLPI de lire les informations de fuseau horaire depuis votre base de données mysql par défaut.
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql mysql
Créer un utilisateur et une base de données dédiés à GLPI
mysql -uroot -pmysql
CREATE DATABASE glpi;
CREATE USER 'glpi'@'localhost' IDENTIFIED BY 'yourstrongpassword';
GRANT ALL PRIVILEGES ON glpi.* TO 'glpi'@'localhost';
GRANT SELECT ON `mysql`.`time_zone_name` TO 'glpi'@'localhost';
FLUSH PRIVILEGES;
Choisissez un mot de passe sécurisé et fort pour votre utilisateur de service. C'est l'utilisateur que GLPI utilise pour accéder et sauvegarder des informations dans la Base de Données GLPI.
3 - Préparation des fichiers pour Installer GLPI
Après avoir installé les composants et créé une première base de données et un utilisateur de service pour recevoir les dossiers GLPI, vous téléchargerez la version *.tgz la plus récente de GLPI et la stockerez dans le dossier racine principal d'apache.
Vous pouvez toujours trouver la dernière version stable sur https://glpi-project.org/download
cd /var/www/html
wget https://github.com/glpi-project/glpi/releases/download/10.0.19/glpi-10.0.19.tgz
tar -xvzf glpi-10.0.19.tgz
Répartition de la Hiérarchie du Système de Fichiers
Dans ce scénario nous stockons les informations GLPI dans différents dossiers et suivant la FHS où, généralement.
/etc/glpi : pour les fichiers de configuration de GLPI (config_db.php, config_db_slave.php) ;
/var/www/html/glpi : pour le code source de GLPI (en lecture seule), servi par Apache;
/var/lib/glpi : pour les fichiers variables de GLPI (session, documents uploadés, cache, cron, plugins, …);
/var/log/glpi : pour les fichiers de log de GLPI.
Pour s'assurer que GLPI trouvera ces fichiers, nous devons indiquer dans deux fichiers différents où ces dossiers sont sur le système :
Le fichier Downstream
Le fichier downstream.php
est responsable d'instruire l'application GLPI où le GLPI_CONFIG_DIR
- le répertoire de configuration de GLPI - est stocké. Rappelez-vous, nous devons indiquer /etc/glpi
comme le nouveau dossier pour les fichiers de configuration. GLPI comprend qu'un fichier appelé downstream.php
à l'intérieur du dossier inc
a ces instructions.
Créer le fichier
downstream.php
vim /var/www/html/glpi/inc/downstream.php
Déclarer le nouveau dossier de fichier de configuration - vous pouvez insérer ce contenu dans ce fichier que vous avez créé
<?php
define('GLPI_CONFIG_DIR', '/etc/glpi/');
if (file_exists(GLPI_CONFIG_DIR . '/local_define.php')) {
require_once GLPI_CONFIG_DIR . '/local_define.php';
}
Maintenant vous pouvez déplacer les dossiers de leur répertoire actuel vers les nouveaux répertoires :
mv /var/www/html/glpi/config /etc/glpi
mv /var/www/html/glpi/files /var/lib/glpi
mv /var/lib/glpi/_log /var/log/glpi
Après avoir déclaré le nouveau GLPI_CONFIG_DIR
avec le downstream.php
, naviguez vers ce nouveau répertoire /etc/glpi
et créez un nouveau fichier appelé local_define.php. Ce fichier est responsable d'instruire GLPI où les autres répertoires sont stockés.
Nous changeons le dossier documents ( files
) et le dossier logs ( files/_log
) vers leur nouveau répertoire.
Créer le fichier
local_define.php
vim /etc/glpi/local_define.php
Collez le suivant dans ce fichier
<?php
define('GLPI_VAR_DIR', '/var/lib/glpi');
define('GLPI_DOC_DIR', GLPI_VAR_DIR);
define('GLPI_CACHE_DIR', GLPI_VAR_DIR . '/_cache');
define('GLPI_CRON_DIR', GLPI_VAR_DIR . '/_cron');
define('GLPI_GRAPH_DIR', GLPI_VAR_DIR . '/_graphs');
define('GLPI_LOCAL_I18N_DIR', GLPI_VAR_DIR . '/_locales');
define('GLPI_LOCK_DIR', GLPI_VAR_DIR . '/_lock');
define('GLPI_PICTURE_DIR', GLPI_VAR_DIR . '/_pictures');
define('GLPI_PLUGIN_DOC_DIR', GLPI_VAR_DIR . '/_plugins');
define('GLPI_RSS_DIR', GLPI_VAR_DIR . '/_rss');
define('GLPI_SESSION_DIR', GLPI_VAR_DIR . '/_sessions');
define('GLPI_TMP_DIR', GLPI_VAR_DIR . '/_tmp');
define('GLPI_UPLOAD_DIR', GLPI_VAR_DIR . '/_uploads');
define('GLPI_INVENTORY_DIR', GLPI_VAR_DIR . '/_inventories');
define('GLPI_THEMES_DIR', GLPI_VAR_DIR . '/_themes');
define('GLPI_LOG_DIR', '/var/log/glpi');
4 - Permissions de Dossier et Fichier
Voici une suggestion de permissions pour votre installation GLPI
chown root:root /var/www/html/glpi/ -R
chown www-data:www-data /etc/glpi -R
chown www-data:www-data /var/lib/glpi -R
chown www-data:www-data /var/log/glpi -R
chown www-data:www-data /var/www/html/glpi/marketplace -Rf
find /var/www/html/glpi/ -type f -exec chmod 0644 {} \;
find /var/www/html/glpi/ -type d -exec chmod 0755 {} \;
find /etc/glpi -type f -exec chmod 0644 {} \;
find /etc/glpi -type d -exec chmod 0755 {} \;
find /var/lib/glpi -type f -exec chmod 0644 {} \;
find /var/lib/glpi -type d -exec chmod 0755 {} \;
find /var/log/glpi -type f -exec chmod 0644 {} \;
find /var/log/glpi -type d -exec chmod 0755 {} \;
5 - Configurer le Serveur Web
Pour que GLPI fonctionne en douceur, sans avoir besoin d'URLs complexes, nous recommandons d'utiliser un nom DNS pour votre serveur et de créer un Virtual Host pour rediriger toutes les requêtes venant vers votre instance cherchant cette entrée DNS précédemment créée vers le bon chemin dans votre configuration Apache. Plus d'informations sur la configuration du serveur web peuvent être trouvées ici
How to create a VirtualHost dedicated to GLPI?
Create a file on
/etc/apache2/sites-available/glpi.conf
/etc/apache2/sites-available/glpi.conf
In this file, you will add the following content:
# Start of the VirtualHost configuration for port 80
<VirtualHost *:80>
ServerName yourglpi.yourdomain.com
# Specify the server's hostname
DocumentRoot /var/www/html/glpi/public
# The directory where the website's files are located
# Start of a Directory directive for the website's directory
<Directory /var/www/html/glpi/public>
Require all granted
# Allow all access to this directory
RewriteEngine On
# Enable the Apache rewrite engine
# Ensure authorization headers are passed to PHP.
# Some Apache configurations may filter them and break usage of API, CalDAV, ...
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect all requests to GLPI router, unless the file exists.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</Directory>
# End of the Directory directive for /var/www/glpi/public
</VirtualHost>
# End of the VirtualHost configuration for port 80
ServerName if you have a public URL, you can type it here
DocumentRoot if you will store GLPI in a different page, change it too.
After the Virtual Host file is created you should disable the default apache site configuration, enable the rewrite module and reload the new vhost file.
a2dissite 000-default.conf
# Disable default apache site
a2enmod rewrite
# enable the rewrite module
a2ensite glpi.conf
# enable the new apache virtual host settings for your glpi instance
systemctl restart apache2
Set up the PHP.ini file
For GLPI to work properly it is recommended to change the following parameters on your php.ini file
Open the php.ini file
vim /etc/php/8.1/apache2/php.ini
Change the following parameters
upload_max_filesize = 20M
Maximum size for uploaded files is set to 20 megabytes.post_max_size = 20M
Maximum size for POST data (e.g., form submissions) is also set to 20 megabytes.max_execution_time = 60
Maximum execution time for a PHP script is set to 60 seconds.max_input_vars = 5000
Maximum number of input variables (e.g., form fields) a script can accept is 5000.memory_limit = 256M
The maximum amount of memory a single PHP script can use is 256 megabytes.session.cookie_httponly = On
Sets the "HttpOnly" attribute for session cookiesdate.timezone = America/Sao_Paulo
Sets the default timezone for PHP to yours.
To add your timezone, please refer to the official list of supported timezones for PHP
6 - Start Web Installation
Once the installation and configuration of dependencies are done, the installation can continue on a web browser with access to this same server. Open a Web browser and type the DNS record you have created for this server.
Last updated
Was this helpful?