Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
Matomo/Installation
Installation de Matomo sur une VM Ubuntu
Objectif
Cette procédure décrit l'installation de Matomo sur les VM AJLSM hébergeant les applications Pleade et Drupal.
Elle est destinée à être réutilisée pour les nouveaux projets, indépendamment du client et du nom de domaine.
La configuration Apache, l'intégration Drupal et la publication sécurisée par HAProxy sont détaillées dans des chapitres distincts :
1. Environnement technique
Matomo fonctionne avec Apache 2.4, PHP et MariaDB/MySQL.
Deux modes d'exécution de PHP sont possibles :
mod_php : PHP est exécuté directement par Apache.
PHP-FPM : PHP est exécuté par un service indépendant auquel Apache transmet les requêtes PHP.
Le choix dépend de la configuration de la VM. Il n'est pas nécessaire d'installer PHP-FPM lorsque Matomo fonctionne déjà avec mod_php.
Versions PHP
| Ubuntu | Version PHP de référence | Observations
Ubuntu 18.04 PHP 8.1 Installation historique avec version PHP ajoutée séparément - Ubuntu 24.04 PHP 8.3 Version fournie par Ubuntu - Ubuntu 26.04 PHP 8.4 Version utilisée sur AD64 en octobre 2026 } Vérifier systématiquement la compatibilité entre PHP et la version de Matomo installée. Composants nécessaires
2. Installation des dépendances PHPAdapter la version de PHP à celle installée sur la VM. Ubuntu 24.04 — PHP 8.3sudo apt install \
php8.3-mysql php8.3-gd php8.3-curl php8.3-xml \
php8.3-mbstring php8.3-zip php8.3-intl
Ubuntu 26.04 — PHP 8.4sudo apt install \
php8.4-mysql php8.4-gd php8.4-curl php8.4-xml \
php8.4-mbstring php8.4-zip php8.4-intl
Vérificationphp -v
php -m | grep -Ei 'mysqli|pdo_mysql|gd|curl|mbstring|xml|zip|intl'
3. Activation de PHP-FPMExemple pour PHP 8.4 : sudo apt install php8.4-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.4-fpm
sudo systemctl reload apache2
Vérifier le service : systemctl status php8.4-fpm
Attention : sur une VM hébergeant plusieurs applications PHP, vérifier les configurations Apache existantes avant d'activer une configuration PHP-FPM globale. 4. Préparation de MariaDBVérifier que MariaDB est installé et actif : systemctl status mariadb
Matomo nécessite :
Exemple générique à adapter : CREATE DATABASE matomo
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
CREATE USER 'matomo'@'localhost'
IDENTIFIED BY 'MOT_DE_PASSE_FORT_A_REMPLACER';
GRANT ALL PRIVILEGES ON matomo.*
TO 'matomo'@'localhost';
Ne jamais conserver le mot de passe d'exemple dans une installation réelle. 5. Permissions et sécurisation des fichiers MatomoPrincipesL'installation Matomo est située dans : /var/www/matomo
Sur les VM AJLSM, lorsque PHP-FPM s'exécute sous l'utilisateur `www-data`, les fichiers de Matomo appartiennent normalement à `www-data:www-data`. Les permissions de référence sont :
Important : les permissions 755 et 644 ne rendent pas les fichiers accessibles en écriture à tous. Elles permettent uniquement au propriétaire de les modifier. Configuration initialePour une nouvelle installation dont l'ensemble des fichiers applicatifs doit appartenir à `www-data` : sudo chown -R www-data:www-data /var/www/matomo
sudo find /var/www/matomo -type d -exec chmod 755 {} \;
sudo find /var/www/matomo -type f -exec chmod 644 {} \;
sudo chmod 600 /var/www/matomo/config/config.ini.php
Attention : ces commandes concernent une installation initiale, avant la création éventuelle de répertoires spécifiques par d'autres services. Ne pas les réexécuter aveuglément sur une installation existante. Vérifier préalablement le compte utilisé par PHP-FPM. Si celui-ci est différent de `www-data`, adapter les propriétaires et permissions. Vérification des permissionsstat -c '%A %a %U:%G %n' \
/var/www/matomo \
/var/www/matomo/config \
/var/www/matomo/config/config.ini.php \
/var/www/matomo/tmp \
/var/www/matomo/plugins \
/var/www/matomo/matomo.php
Vérifier la répartition des propriétaires : sudo find /var/www/matomo -xdev -printf '%u:%g\n' \
| sort | uniq -c | sort -nr
Identifier les fichiers ou répertoires accessibles en écriture à tous : sudo find /var/www/matomo -xdev -perm -0002 \
-printf '%m %u:%g %p\n'
Cette dernière commande ne doit normalement rien retourner. Vérification des répertoires accessibles en écriturefor DIR in config tmp plugins; do
if sudo -u www-data test -w "/var/www/matomo/$DIR"; then
echo "$DIR : écriture OK"
else
echo "$DIR : écriture NON autorisée"
fi
done
Adapter `www-data` si Matomo utilise un autre compte PHP-FPM. Cas particulier des répertoires ACMECertains répertoires peuvent être créés et administrés par le mécanisme de validation des certificats Let's Encrypt : /var/www/matomo/.well-known
/var/www/matomo/.well-known/acme-challenge
Ils peuvent légitimement appartenir à `root:root` avec des permissions `755`. Ne pas modifier systématiquement leur propriétaire : vérifier au préalable le mécanisme de validation ACME utilisé sur la VM. Vérification après modificationAprès toute modification des permissions :
Retour d'expérience — AD64, octobre 2026L'audit de `/var/www/matomo` sur AD64 a donné les résultats suivants :
Aucune autre modification des propriétaires ou des permissions n'était nécessaire. Conclusion : pour les nouvelles installations, appliquer des permissions adaptées dès le départ et réserver l'accès aux fichiers sensibles. Sur les installations existantes, effectuer un audit avant toute modification globale. 6. Configuration Apache et HTTPSLa configuration du VirtualHost Matomo est décrite dans : Deux architectures sont possibles :
Dans l'infrastructure AJLSM utilisant HAProxy, le certificat public est généralement géré sur les répartiteurs de charge. La procédure de configuration des certificats et des ACL est décrite dans : Pour une installation utilisant directement Certbot sur Apache : sudo apt install certbot python3-certbot-apache
sudo certbot --apache
Cette procédure Certbot ne doit pas être appliquée automatiquement à une VM dont le HTTPS public est déjà géré par HAProxy. 7. Initialisation de MatomoAprès configuration du VirtualHost, ouvrir dans un navigateur l'URL HTTPS prévue pour Matomo. L'assistant d'installation permet notamment de :
Important : chaque application suivie doit disposer de son propre identifiant de site Matomo lorsque l'on souhaite séparer ses statistiques. Exemple : une application Internet et une salle de lecture Drupal peuvent être déclarées comme deux sites distincts. 8. Vérifications après installationVérifier la version installéecd /var/www/matomo
sudo -u www-data php console core:version
Vérifier les servicessystemctl is-active apache2
systemctl is-active mariadb
systemctl is-active php8.4-fpm
Adapter la version PHP-FPM si nécessaire. Vérifier les points d'accèsMATOMO_URL="https://matomo.exemple.fr"
curl -I "$MATOMO_URL/matomo.js"
curl -I "$MATOMO_URL/matomo.php"
Note : selon le comportement du serveur, une requête HEAD peut ne pas produire le même résultat qu'une requête GET. Pour vérifier précisément les codes HTTP : curl -sS -o /dev/null -w "HTTP %{http_code}\n" \
"$MATOMO_URL/matomo.js"
L'installation de Matomo ne garantit pas à elle seule que les applications transmettent leurs visites. Cette vérification relève des chapitres d'intégration. 9. Intégration aux applicationsDrupalVoir Matomo/Drupal pour :
PleadeVoir Matomo/Pleade. Suivi IIIF et événements10. Sécurité et maintenanceAprès installation, vérifier :
Voir : 11. Installations de référence
Les paramètres propres à chaque client (domaines, adresses IP, identifiants Matomo, backends HAProxy) ne doivent pas être intégrés directement dans les commandes génériques. |
|---|