Serveurs web

Installation de piwigo

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Dernière mise à jour : 29/12/2021 à 16h28
Table des matières

piwigo



Dans cet article, je vais vous expliquer comment installer Piwigo !
Comme d'habitude, je vais utiliser mon hyperviseur Proxmox, j'utilise un conteneur Debian.

Mais d'abord...

Qu'est-ce que Piwigo ?



Piwigo est selon son site web "une photothèque open source en ligne qui permet de gérer, organiser, partager ses photos sur le web"
Vous pouvez héberger Piwigo chez un hébergeur ou chez vous comme je le fais.

Plus d'infos sur le site web de Piwigo

Installation des pré-requis



Tout d'abord, il est nécessaire d'installer tout ce qu'il faut pour un serveur web ainsi qu'une base de données. On se connecte à son serveur (en ssh ou directement via l'interface si on est sur proxmox). Puis on installe le nécessaire (comme à mon habitude, je me connecte en root donc pas besoin de sudo :

Code BASH :
apt install apache2 php mariadb-server imagemagick ffmpeg poppler-utils unzip gzip make php-{curl,gd,intl,xml,zip,mbstring,json,mysql}


Il faut également installer ExifTool :
Code BASH :
wget https://exiftool.org/Image-ExifTool-12.38.tar.gz
gzip -dc Image-ExifTool-12.38.tar.gz | tar -xf -
cd Image-ExifTool-12.38
perl Makefile.PL
make test


Pensez à aller sur le site d'ExifTool pour vérifier le numéro de la dernière version et adapter dans les commandes

Il faut ensuite vérifier que son serveur web et son serveur de base de données fonctionnent. De mon côté, je vais vous présenter la résolution de deux problèmes que j'ai eus.

Pour le serveur web :

Code BASH :
systemctl status apache2.service


Si comme moi, vous avez l'erreur suivante :

Code BASH :
apache2.service: Failed to set up mount namespacing


Cela se résoud avec les commandes suivantes :

Code BASH :
sed -i -e 's,PrivateTmp=true,PrivateTmp=false\nNoNewPrivileges=yes,g' /lib/systemd/system/apache2.service
systemctl daemon-reload
systemctl start apache2.service


Pour le serveur de base de données :

Code BASH :
systemctl status mysql.service


Si comme moi, vous avez l'erreur suivante :

Code BASH :
mysql.service: Failed to set up mount namespacing


Cela se résoud avec les commandes suivantes :

Code BASH :
sed -i -e 's,ProtectHome=true,ProtectHome=flase,g' -e 's,ProtectSystem=true,ProtectSystem=flase,g' /lib/systemd/system/apache2.service
systemctl daemon-reload
systemctl start apache2.service


Paramétrage de la base de données



Piwigo s'appuie sur une base de données, d'où l'installation de maria-db.
Pour configurer celle-ci, on va d'abord attribuer un mot de passe à root dans mysql :

Code BASH :
mysql_secure_installation


Appuyer sur Entrée une première fois puis répondre YES à toutes les questions.

Se connecter ensuite à la base de données :
Code BASH :
mysql -u root -p


Une fois dans la base de données, on va créé un utilisateur :
Code SQL :
USE mysql;
CREATE USER 'login' IDENTIFIED BY 'password';


login est le nom du nouvel utilisateur et password le mot de passe que vous souhaitez lui attribuer

On lui donne les privilèges qui vont bien :
Code SQL :
GRANT ALL PRIVILEGES ON * . * TO 'login';
FLUSH PRIVILEGES;


On peut ensuite quitter mysql et se reconnecter avec notre nouvel utilisateur :
Code SQL :
EXIT;


Code BASH :
mysql -u login -p


On créé ensuite une nouvelle base de données pour piwigo :
Code SQL :
CREATE DATABASE piwigo;


Installation de Piwigo



On peut ensuite passer à l'installation de Piwigo. Pour cela, il faut télécharger la dernière version et copier les fichiers sur le serveur web :

Code BASH :
wget -O piwigo.zip https://fr.piwigo.org/download/dlcounter.php?code=latest
unzip piwigo.zip -d /var/www/html/