En 2019, j’avais présenté différentes façons d’utiliser Matomo avec WordPress. À l’époque, je n’étais pas favorable à l’utilisation de l’extension Matomo pour WordPress (Matomo Analytics), car elle alourdit WordPress en fusionnant les bases de données des deux logiciels.
Récemment, j’ai dû retirer Matomo Analytics d’un site web déjà encombré. Mon objectif était d’utiliser Matomo auto-hébergé pour assurer le suivi du site tout en conservant les données recueillies. Voici comment j’ai procédé.
Une documentation officielle fournie par Matomo (en anglais) explique comment migrer de Matomo Anlytics à Matomo auto-hébergé. Le mode opératoire est expédié en quatre phrases ! C’est que cela doit être simple : ça l’est en effet si l’on est parfaitement dans les clous…
Configuration idéale
- Un site WordPress à jour avec la dernière version de Matomo Analytics.
- Une installation de Matomo auto-hébergé vierge, à jour, avec dans la base de données utilisant le préfixe par défaut : matomo_.
Pourquoi migrer vers Matomo auto-hébergé ?
- Performance améliorée : Une instance auto-hébergée peut gérer un volume plus important de données et de trafic sans impacter les performances de votre site WordPress.
- Sécurité accrue : Vous avez un contrôle total sur vos données et leur sécurité.
- Fonctionnalités étendues : Accès à des extensions et des fonctionnalités supplémentaires non disponibles sur la version WordPress.
Prérequis
Avant de commencer la migration, assurez-vous d’avoir :
- Un hébergement compatible avec les exigences de Matomo. (Si WordPress est installé il l’est.)
- Un accès SSH ou en mode terminal à votre serveur (le cPanel d’o2switch le permet).
- Un accès à phpMyAdmin pour intervenir sur la base de donnée directement (si besoin).
- Une installation fonctionnelle de Matomo sur votre serveur.
- Une sauvegarde complète de votre site WordPress et de vos données Matomo.
- Récupérer la dernière version de l’extension Matomo Migration pour WordPress (bas de page).
Mode opératoire pour migrer de Matomo pour WordPress à Matomo auto-hébergé
- Installer l’extension Matomo Migration dans WordPress.
- Installer Matomo auto-hébergé sur le même serveur que WordPress. Attention ! il ne faut pas configurer de site dans Matomo auto-hébergé au risque d’avoir un conflit d’ID de site.
- Récupérer les données utilisées pour la ligne de commande de la migration :
- source-idsite : c’est l’ID du site dans Matomo pour WordPress. Normalement : 1. On peut vérifier dans la base de données de WordPress, dans la table :
wp_matomo_site
- target-db-host : adresse de la base de données cible (celle de Matomo auto-hébergé). Chez o2switch : localhost.
- target-db-username : utilisateur de la base de données cible (pour l’exemple xyz123_matomo).
- target-db-password : mot de passe de l’utilisateur de la base de données (attention la ligne de commande gère mal les caractères exotiques). J’ai dû passer par un mot de passe simple pour franchir cet obstacle : exemple : mot2passe. Il faudra ensuite remettre un mot de passe solide !
- target-db-name : nom de la base de donnée cible (pour l’exemple xyz123_matomo).
- source-idsite : c’est l’ID du site dans Matomo pour WordPress. Normalement : 1. On peut vérifier dans la base de données de WordPress, dans la table :
- A l’aide d’un terminal (SSH ou terminal cPanel) aller dans le dossier racine de WordPress. Chez o2switch ça ressemble à /home/identifiant/public_html.
- Lancer la commande suivante :
php wp-content/plugins/matomo/app/console migration:measurable --source-idsite=1 --target-db-host=localhost --target-db-username=xyz123_matomo --target-db-password=mot2passe --target-db-name=xyz123_matomo
- Si tout va bien les données sont importées de Matomo pour WordPress vers votre nouvelle installation.
- Une fois vérifié que les données apparaissent bien dans Matomo auto-hébergé, désactiver Matomo pour WordPress. Attention ! selon le mode de désactivation, les données Matomo peuvent être supprimées de WordPress. Assurez-vous de bien avoir vérifié l’étape précédente.
- Installer Matomo Connect pour connecter votre site WordPress à Matomo auto-hébergé.
- Dans Matomo auto-hébergé créer un jeton pour reconnecter le site :
- Administration de Matomo (roue crantée en haut à droite).
- Menu : Personnel > Sécurité > Jetons d’authentification.
- La zone doit être vide. Créer un nouveau jeton qui pointe vers l’URL du site à suivre.
- Utiliser le jeton pour configurer Matomo Connect installé plus haut.
- Matomo doit maintenant être en mesure d’assurer le suivi du site avec une continuité des données importées.
Problèmes et solutions
Lors de la première mise en œuvre de cette migration j’ai rencontré quelques problèmes bloquants.
Mot de passe avec des caractères non supportés
Erreur :
In TargetDb.php line 239:
Cannot connect to the target database: Database access denied
In Adapter.php line 56:
Database access denied
Solution 1 : remplacer le mot de passe par quelque chose de simple : ex. : « mot2passe ». Il faudra ensuite remettre un mot de passe solide !
Solution 2 : échapper les caractères qui posent problème à l’aide de « \ ».
ex. : iS\=5\$8s\^a22c
Base de données cible sans le préfixe par défaut (matomo_)
Erreur :
In Mysqli.php line 190:
Mysqli statement execute error : Table 'xyz123_matomo.site' doesn't exist
Pour contourner ce problème il faut ajouter l’option
--target-db-prefix=monprefixe_
Base de donnée source avec des colonnes non standard
Erreur :
The following columns are missing in the target DB table "prefixe_log_visit": custom_var_k1, custom_var_v1, custom_var_k2, custom_var_v2, custom_var_k3, custom_var_v3, custom_var_k4, custom_var_v4, custom_var_k5, custom_var_v5
The following columns are missing in the target DB table "prefixe_log_link_visit_action": custom_var_k1, custom_var_v1, custom_var_k2, custom_var_v2, custom_var_k3, custom_var_v3, custom_var_k4, custom_var_v4, custom_var_k5, custom_var_v5
The following columns are missing in the target DB table "prefixe_log_conversion": custom_var_k1, custom_var_v1, custom_var_k2, custom_var_v2, custom_var_k3, custom_var_v3, custom_var_k4, custom_var_v4, custom_var_k5, custom_var_v5
In Migrate.php line 83:
Please make sure both Matomo instances are on the same version and have the same plugins and plugin versions installed.
Solution : La base de données source contenait des tables (prefixe_log_visit, prefixe_log_link_visit_action, prefixe_log_conversion) avec des colonnes non standard. Après vérification avec phpMyAdmin sur la base de données source, il s’est avéré que les colonnes en question étaient vides. Je les ai supprimées.
Après cette correction la migration s’est passée sans autre problèmes.
Dans le cas où les colonnes n’auraient pas été vides il aurait fallu les ajouter dans la base de données cible.
Conclusion
La migration de Matomo pour WordPress vers une version auto-hébergée peut améliorer significativement la performance et la sécurité de votre site. En suivant ces étapes, vous pouvez transférer vos données de manière sécurisée et profiter des avantages d’une installation Matomo complète.
Pour plus de détails, consultez la documentation officielle et l’article sur le plugin de migration Matomo.
N’hésitez pas à poster un commentaire pour poser des questions spécifiques concernant cette migration.
Cet article fait suite à une première migration qui m’a posé pas mal de soucis. J’ai bien conscience de ne pas maîtriser totalement le processus, mais je tenais à aider ceux qui comme moi débutent dans cette opération.
Remerciements (par ordre d’apparition) :
Merci au support d’o2switch pour avoir identifié le premier blocage concernant le mot de passe. Leur réactivité et la pertinence de leurs réponses sont toujours appréciées.
Merci à ma collègue Maïlis Amalric d’avoir dissipé en un clin d’œil le brouillard dans lequel j’étais plongé depuis plusieurs jours. En véritable professionnelle du développement, elle a su immédiatement maîtriser la base de données récalcitrante.