Comment installer GLPI sur un Raspberry Pi avec Ubuntu Server
Publié le jeudi 6 mai 2021 dans la catégorie DiversInstaller 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.
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.
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.
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.
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.
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 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.
Salut Quentin,
Merci beaucoup pour tes retours, c'est super cool !
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
heu une faute bizarre dans le directory home :
En fait, c'est
jlc
Merci beaucoup pour votre tutoriel! Tout a maché exactement comme decrit. Avec votre aide, l'installation der GLPI était simple et rapide. 🙂