Addresse
Martinerie
87520 CIEUX
Heures d'ouverture
Lundi au Vendredi : 8h00 -18h00

Matomo est une excellente alternative à Google Analytics pour suivre les statistiques de vos sites tout en gardant vos données chez vous.
Mais en auto-hébergé, surtout sur un stack LiteSpeed / OpenLiteSpeed + ServerAvatar, quelques points de configuration sont indispensables pour garantir sécurité et performances.
Dans ce tutoriel, on va voir comment :
Installer Matomo sur un sous-domaine (ex. analytics.mon-domaine.fr)
Corriger les alertes de sécurité : config accessible, répertoires tmp/ et lang/
Forcer l’utilisation du HTTPS
Mettre en place un cron d’archivage propre via ServerAvatar
(Optionnel) Optimiser les performances avec LOAD DATA INFILE
Avant de commencer, assurez-vous d’avoir :
Un serveur avec LiteSpeed ou OpenLiteSpeed (par exemple via ServerAvatar)
PHP 7.4+ (idéalement PHP 8.1 ou 8.2)
MySQL/MariaDB
Un sous-domaine dédié, par exemple :
analytics.mon-domaine.fr
Accès SSH et accès à votre base de données (phpMyAdmin ou ligne de commande)
Dans ServerAvatar, créez un nouveau site ou ajoutez un domaine :
Domaine : analytics.mon-domaine.fr
Dossier racine : par exemple
/home/UTILISATEUR/analytics/public_html
Activez le SSL Let’s Encrypt pour ce domaine.
En SSH sur votre serveur :
cd /home/UTILISATEUR/analytics/public_html
# Télécharger la dernière version
wget https://builds.matomo.org/matomo.zip
# Décompresser
unzip matomo.zip
mv matomo/* .
mv matomo/.* . 2>/dev/null || true
rmdir matomo
rm matomo.zip
Donnez les bons droits (adaptés à votre setup) :
chown -R UTILISATEUR:UTILISATEUR /home/UTILISATEUR/analytics/public_html
Ouvrez https://analytics.mon-domaine.fr dans votre navigateur.
Suivez les étapes :
Vérification du système
Configuration de la base de données
Création du super administrateur
Ajout du premier site à suivre
À ce stade, Matomo est installé mais la vérification du système vous affichera probablement des avertissements importants, surtout sur LiteSpeed.
Par défaut, Matomo vous signale souvent :
config/config.ini.php accessible publiquement
tmp/ et lang/en.json accessibles via le navigateur
Sur un serveur Apache classique, Matomo se repose sur des fichiers .htaccess.
Avec LiteSpeed / OpenLiteSpeed, il faut s’assurer que ces fichiers sont pris en compte et/ou ajouter des règles adaptées.
Dans le dossier racine de Matomo :
cd /home/UTILISATEUR/analytics/public_html
nano .htaccess
Ajoutez (ou complétez) le fichier avec :
RewriteEngine On
# --- Sécurité Matomo ---
# Bloque totalement l'accès au répertoire config/
RewriteRule ^config/.*$ - [F,L]
# Bloque l'accès HTTP à tmp/
RewriteRule ^tmp/.*$ - [F,L]
# Bloque l'accès au fichier de langue sensible
RewriteRule ^lang/en\.json$ - [F,L]
Enregistrez, puis testez depuis votre machine :
curl -I https://analytics.mon-domaine.fr/config/config.ini.php
curl -I https://analytics.mon-domaine.fr/tmp/
curl -I https://analytics.mon-domaine.fr/lang/en.json
Vous devez obtenir un HTTP 403 (ou un autre code ≠ 200).
Si vous êtes encore en 200, vérifiez côté OpenLiteSpeed que les .htaccess sont bien activés (paramètre autoLoadHtaccess dans la conf du vhost).
Une fois cela en place, retournez dans Matomo → Administration → Système → Vérification du système :
les sections Répertoires privés requis et Répertoires privés recommandés devraient passer au vert.
Même si votre domaine est déjà en HTTPS, Matomo recommande de forcer l’utilisation du SSL dans sa propre configuration.
Éditez le fichier :
cd /home/UTILISATEUR/analytics/public_html/config
nano config.ini.php
Dans la section [General], ajoutez (ou vérifiez) :
[General]
force_ssl = 1
assume_secure_protocol = 1
Enregistrez.
Désormais, Matomo redirigera vers HTTPS et considérera les URLs comme sécurisées.
Par défaut, Matomo peut archiver les rapports au moment où vous consultez l’interface.
Ça fonctionne, mais sur un site sérieux, il est préférable de pré-calculer les rapports via un cron pour :
Accélérer le chargement du back-office Matomo
Éviter des pics de charge aléatoires
Dans le dossier racine de Matomo :
cd /home/UTILISATEUR/analytics/public_html
/usr/bin/php console core:archive --url=https://analytics.mon-domaine.fr/
Testez cette commande une fois en SSH pour vérifier qu’elle s’exécute sans erreur.
Dans ServerAvatar, ajoutez un cron job pour l’utilisateur du site, avec une fréquence raisonnable (par exemple, toutes les heures) :
5 * * * * /usr/bin/php /home/UTILISATEUR/analytics/public_html/console core:archive --url=https://analytics.mon-domaine.fr/ > /home/UTILISATEUR/matomo-archive.log 2>&1
Explication :
5 * * * * : tous les jours, toutes les heures, à H+5
console core:archive : commande Matomo d’archivage
matomo-archive.log : fichier log pour vérifier ce qui se passe en cas de souci
Dans Matomo :
Allez dans Administration → Paramètres généraux.
Section Archiver les rapports :
Désactivez l’archivage “lorsque les visites sont enregistrées”.
Indiquez que les rapports sont archivés via la ligne de commande (cron).
Résultat : Matomo ne fera plus de gros calculs au moment où vous consultez les rapports : tout sera déjà prêt, pré-calculé par le cron.
Dans la vérification du système, Matomo peut vous afficher :
Erreur: LOAD DATA INFILE failed…
Access denied for user …
Loading local data is disabled…
Ce warning concerne exclusivement la performance de l’archivage.
Matomo fonctionnera sans, mais sur des sites à gros trafic (> 100 000 pages vues/mois), activer LOAD DATA INFILE permet de gagner du temps.
Éditez la configuration MySQL (chemin classique sous Ubuntu) :
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Dans la section [mysqld] :
[mysqld]
local_infile = 1
Redémarrez MySQL :
sudo systemctl restart mysql
Vérifiez :
mysql -u root -p -e "SHOW VARIABLES LIKE 'local_infile';"
Vous devez voir ON.
Attention : ce privilège permet à l’utilisateur d’accéder à des fichiers côté serveur via MySQL.
À n’accorder que si vous maîtrisez votre environnement.
Dans MySQL :
GRANT FILE ON *.* TO 'UTILISATEUR_MATOMO'@'localhost';
FLUSH PRIVILEGES;
Remplacez UTILISATEUR_MATOMO par le nom d’utilisateur utilisé par Matomo dans config/config.ini.php.
Ensuite, relancez l’archivage :
cd /home/UTILISATEUR/analytics/public_html
/usr/bin/php console core:archive --url=https://analytics.mon-domaine.fr/
Retournez dans Vérification du système : la ligne LOAD DATA INFILE devrait passer au vert.
Si vous préférez rester prudent (ou que le trafic est modeste), vous pouvez simplement ignorer ce warning : Matomo tournera parfaitement sans.
À la fin de ce tuto, vous devriez avoir :
✅ Matomo accessible uniquement en HTTPS
✅ Le fichier config/config.ini.php inaccessible depuis le web
✅ Les dossiers tmp/ et lang/en.json protégés
✅ Un cron d’archivage Matomo en place (toutes les heures, par exemple)
✅ Une “Vérification du système” globalement au vert, avec éventuellement un simple warning LOAD DATA INFILE si vous choisissez de ne pas l’activer
Installer Matomo auto-hébergé sur un serveur LiteSpeed/ServerAvatar, ce n’est pas compliqué, mais ça demande quelques ajustements :
Adapter les règles de sécurité aux comportements spécifiques de LiteSpeed / OpenLiteSpeed
Mettre en place un cron pour éviter que l’interface Matomo soit lente
Éventuellement optimiser MySQL pour les gros volumes
Une fois ces étapes en place, vous avez une solution d’analytics :
Respectueuse de la vie privée,
Sous votre contrôle,
Performante même avec plusieurs sites WordPress branchés dessus.

