Comment installer GLPI sur un Raspberry Pi avec Ubuntu Server

Publié le jeudi 6 mai 2021 dans la catégorie Divers

Installer GLPI sur un Ubuntu Server peut être très utile en entreprise, bien entendu. Aujourd'hui, on va faire un LAB afin d'installer GLPI sur un Raspberry Pi 4, toujours avec Ubuntu Server.

Préparer son Raspberry Pi

Pour commencer, il vous faut évidemment un Raspberry Pi. Perso, j'utilise des Raspberry Pi 4 équipés de PoE HAT pour mes tests et mon labo. Il vous faudra aussi une carte mémoire un peu rapide, un peu sérieuse. Je ne crois pas en avoir déjà parlé, donc voici celles que j'ai ; des SanDisk Extreme Pro.

raspberry pi ubuntu glpi

Une fois que vous avez choisi vos accessoires, il vous reste à télécharger Ubuntu Server pour Raspberry Pi afin de passer à l'action. Cette partie est totalement gratuite. J'installe ensuite Ubuntu Server sur la carte micro SD avec un outil comme Balena Etcher, mais on l'a déjà vu en détail.

Je me suis amusé comme un petit fou en faisant cet article

Suite à ça, il vous faudra vous connecter en SSH sur le Pi : ID/PWD ubuntu/ubuntu par défaut, avec obligation de changer le mot de passe à la première connexion.

Ce n'est pas nécessaire, mais ce serait une bonne idée de vérifier les mises à jour avant d'attaquer l'installation qui nous intéresse aujourd'hui.

sudo apt update
sudo apt upgrade

Installer Apache2 HTTP

La première des choses à faire consiste à installer Apache2 sur votre système Ubuntu. On attaque de suite avec les commandes suivantes (la commande sudo vous demandera de taper votre mot de passe utilisateur).

sudo apt update
sudo apt install apache2

Après avoir installé Apache2, les commandes suivantes peuvent être utilisées pour arrêter, démarrer, ou activer les services Apache2 à chaque démarrage du serveur.

sudo systemctl stop apache2.service
sudo systemctl start apache2.service
sudo systemctl enable apache2.service

Pour vérifier que le serveur HTTP Apache2 soit bien installé, il vous suffit d'ouvrir un navigateur internet et de taper l'adresse IP de votre Raspberry Pi ou son hostname. Par défaut, c'est censé être http://ubuntu. Si vous voyez une page similaire à celle ci-dessous, c'est qu'Apache2 est bien installé et fonctionnel.

Apache2 Ubuntu Server

Installer MariaDB comme serveur de base de données

Pour utiliser GLPI, vous aurez besoin d'un serveur de base de données. Installons donc MariaDB.

sudo apt install mariadb-server mariadb-client

Comme pour Apache2, les commandes suivantes peuvent être utilisées pour agir sur le service MariaDB : arrêter, démarrer, activer.

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Maintenant que l'installation est réalisée, votre priorité est de sécuriser le serveur de bases. Vous allez créer un mot de passe root et désactiver l'accès à distance root (remote root access).

sudo mysql_secure_installation

Quand ce sera demandé, répondez aux questions ci-dessous en suivant le guide.

Enter current password for root (enter for none): Appuyez sur Entrée
Set root password? [Y/n]: Y
New password: Nouveau mot de passe
Re-enter new password: Nouveau mot de passe
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y

Maintenant, redémarrez le serveur MariaDB. Il faudra ensuite vérifier que l'installation est nominale en essayant de se connecter au serveur MariaDB.

sudo mysql -u root -p

Saisissez maintenant le mot de passe que vous avez créé… et si tout fonctionne, vous devriez voir le message de bienvenue de MariaDB.

MariaDB welcome

Si c'est ok, un petit "exit" pour sortir et on reprend la configuration.

Installer PHP et les modules complémentaires

En suivant les pré-requis d'installation de GLPI, il nous manque PHP. Au moment de la rédaction de cet article, la dernière version est PHP 7.4. Les commandes rouges sont donc susceptibles d'évoluer. Renseignez-vous.

sudo apt update

Comme on est fainéants, on va tout installer d'un coup avec une méga commande.

sudo apt install php7.4 libapache2-mod-php7.4 php7.4-common php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-mysql php7.4-gd php7.4-imap php7.4-ldap php-cas php7.4-bcmath php7.4-xml php7.4-cli php7.4-zip php7.4-sqlite3 php7.4-apcu php7.4-bz2

Maintenant que l'installation est réalisée, on va ouvrir le fichier de configuration de Apache2 pour faire quelques réglages.

sudo nano /etc/php/7.4/apache2/php.ini

A l'aide d'un CTRL + W, cherchez les lignes suivantes pour modifier les valeurs. Vous pouvez aussi les customiser si vous avez d'autres besoins, mais c'est une bonne base.

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
max_input_vars = 1500
date.timezone = Europe/Paris

Enregistrez le fichier et quittez. Pour tester les réglages de PHP 7.4 avec Apache2, nous allons créer un fichier phpinfo.php à la racine du dossier Apache2

sudo nano /var/www/html/phpinfo.php

Copiez la ligne ci-dessous et enregistrez.

<?php phpinfo( ); ?>

Dans un navigateur web, rajoutez "/phpinfo.php" à la fin de l'URL de votre serveur, pour aller sur quelque chose dans ce genre : http://ubuntu/phpinfo.php

Vous devriez voir la page de test de PHP.

Créer une base GLPI

On approche de la fin, tout du moins, on commence à configurer GLPI, maintenant que les pré-requis sont là. La première des choses à faire est de créer une base de données vierge qui sera utilisée pour GLPI.

Une fois n'est pas coutume, nous allons exécuter la commande ci-dessous pour se connecter à MariaDB à l'aide du mot de passe configuré quelques étapes plus haut.

sudo mysql -u root -p

On va créer une base de données nommée "glpi"

CREATE DATABASE glpi;

Puis créer un utilisateur avec un mot de passe. Les éléments en rouge sont les variables.

CREATE USER 'glpiuser'@'localhost' IDENTIFIED BY 'new_password_here';

Pour enfin lui donner les privilèges sur les bases

GRANT ALL ON glpi.* TO 'glpiuser'@'localhost' WITH GRANT OPTION;

On enregistre et on quitte

FLUSH PRIVILEGES;
EXIT;

Télécharger la dernière version de GLPI

Pour continuer, nous allons télécharger la dernière version de GLPI. Enfin, demander au Raspberry Pi de la télécharger pour nous. Je vous conseille de vous rendre sur le site officiel afin d'être certain d'utiliser la dernière version.

Il suffit ensuite de faire un clic droit sur le bouton de téléchargement pour copier le lien.

telechargement glpi

Comme tout à l'heure, les éléments en rouge sont donc variables.

cd /tmp
wget https://github.com/glpi-project/glpi/releases/download/9.5.5/glpi-9.5.5.tgz
tar -xvf glpi-9.5.5.tgz
sudo mv glpi /var/www/glpi

Comme nous avons exécuté le serveur web en "root", il faut vérifier que le groupe "www-data" soit bien le propriétaire des nouveaux fichiers qui seront créés.

Pour s'en assurer, on tape les commandes suivantes :

sudo chown -R www-data:www-data /var/www/glpi/
sudo chmod -R 755 /var/www/glpi/

Configurer Apache2

Pour terminer, nous allons modifier le fichier de configuration de Apache2 pour GLPI, ce qui aura pour effet de contrôler la manière dont les utilisateurs accèdent à GLPI.

Commençons par créer un nouveau fichier de configuration, appelé "glpi.conf" (oui, on fait simple).

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

Vous allez ensuite copier les instructions ci-dessous dans le fichier et l'enregistrer. Comme précédemment, remplacez ce qui est en rouge par vos valeurs.

<VirtualHost *:80>
     ServerAdmin admin@example.com
     DocumentRoot /var/www/glpi
     ServerName example.com
     ServerAlias www.example.com

     <Directory /var/www/glpi/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Enregistrer et quitter

Il faut maintenant mettre ce fichier en exploitation :

sudo a2ensite glpi.conf
sudo a2enmod rewrite
sudo systemctl restart apache2.service

Si vous voulez un autre nom que "ubuntu" pour votre lab, vous pouvez changer le hostname pour celui de votre choix avec la commande

sudo nano /etc/hostname

Activer GLPI

Ça y est, c'est terminé. Il ne reste plus qu'à activer votre GLPI, en interface graphique cette fois.

Ouvrez votre navigateur et accédez à votre serveur, avec l'adresse IP de celui-ci ou le hostname (par défaut, c'est "ubuntu").

Si vous n'arrivez pas à accéder à la page ci-dessus, vérifiez que le fichier "000-default.conf" ne soit pas dans les sites Apache2. Si oui, il faudra le supprimer avec la deuxième commande :

ls /etc/apache2/sites-enabled/
sudo rm /etc/apache2/sites-enabled/000-default.conf

Le reste est une histoire de menus déroulants. Après l'acceptation de la licence, choisissez "Installer".

Une étape résume tous les modules PHP installés. Souvenez-vous de notre méga commande du début ? C'est grâce à elle !

Renseignez les informations de votre base MariaDB. Puis "suivant, suivant, terminé".

Choisissez enfin la base de donnée "glpi" que nous avons créée.

Vous avez un GLPI qui tourne sur un Raspberry Pi. Est-ce que ce n'est pas dingue ? Je serai très curieux de voir la charge en production.

Pour finir proprement ce tutoriel, si tout fonctionne bien, nous allons supprimer le dossier d'installation.

sudo rm -rf /var/www/glpi/install/

Il ne reste plus qu'à appliquer du ITIL, des niveaux de service, des groupes, des users, toutes ces choses très sympa. Si vous avez besoin d'une prestation pour l'utilisation de GLPI et des bonnes pratiques ITIL, n'hésitez pas à me solliciter via le formulaire de contact.

J'espère que ça vous aura bien aidé !

Article écrit par LoKan Sardari 🦓🧠 Ultralearner | 👨🏻‍💻 Entrepreneur | 🏋🏻 Athlete | 📷 Pixel lover | 🎒 Travel addict

Commentaires

Les commentaires doivent rester un lieu d’échange courtois et agréable.

Vous êtes donc invité à respecter le travail effectué sur ce site, les personnes à qui vous répondez, ainsi que la langue française.

Tout commentaire ne respectant pas ces conditions, ou étant profondément hors sujet, sera écarté du débat.

Si vous désirez afficher un avatar, associez-le à votre adresse mail grâce au service Gravatar.

Écrire un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

  1. Quentin dit :

    Article intéressant, et c'est cool d'avoir un petit guide rapide pour GLPI sur un Raspberry (bien que pas recommandé hors "lab") merci pour ça :).

    Après, 1 petite questions et 2 remarques 🙂

    Pourquoi le choix d'une "ubuntu-server" plutôt qu'une "raspbian" qui est dérivée de Debian (comme Ubuntu / Ubuntu-Server), et qui est plus légère est mieux optimisé pour les Raspberry ? Sachant que même pour les serveurs "pro", mieux vaut du Debian que de l'Ubuntu ?

    Pour les remarques, il est possible de simplifier l'installation des packages PHP en simplifiant la ligne de commande:
    sudo apt install php7.4 libapache2-mod-php7.4 php-cas php7.4-{common,gmp,curl,intl,mbstring,xmlrpc,mysql,gd,imap,ldap,bcmath,xml,cli,zip,sqlite3,apcu,bz2}

    Et enfin, pour le fichier "000-default.conf", il n'est pas recommandé de le supprimé, ça permet de couvrir des problèmes éventuel de sécurité en cas de mauvaise configuration du serveur, mais si on le souhaite vraiment, il vaut mieux le désactiver simplement plutôt que de le supprimer via:

    sudo a2dissite 000-default.conf

    Voila pour mes petites remarques 🙂 Encore merci pour l'article.

    1. LoKan Sardari dit :

      Salut Quentin,

      Merci beaucoup pour tes retours, c'est super cool !

  2. jlc dit :

    Bonjour bonjour
    juste une question, sur rpi4 avec ubuntu21 server 64 bits, et boot sur ssd, j'ai déplacé var/www/html vers /home/jlc/www avec les permissions qui vont bien et l'hote virtuel ci-dessous :

    ServerName 192.168.0.24
    ServerAdmin webmaster@localhost
    DocumentRoot / home / jlc / www

    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Require all granted
    #Require ip 192.168
    RewriteEngine On
    RewriteCond %{SERVER_NAME} =192.168.0.24
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

    ErrorLog /var/log/apache2/error.public.log
    CustomLog /var/log/apache2/access.public.log combined

    Et ça veut pas ; ça marchait très bien avec l'ubuntu sur la carte sd, mais ça fait 403 sur le ssd.
    Avez-vous une idée ?
    Amicatelement, jlc

  3. jlc dit :

    heu une faute bizarre dans le directory home :
    En fait, c'est
    jlc

  4. Markus dit :

    Merci beaucoup pour votre tutoriel! Tout a maché exactement comme decrit. Avec votre aide, l'installation der GLPI était simple et rapide. 🙂