Installer GLPI sur Debian 12

Server
959 mots

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.

Installer GLPI sur Debian 12

Installer GLPI sur Debian 12

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.

Commentaires

0/500 caractères

Aucun commentaire pour le moment. Soyez le premier à commenter !