GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Installez Matomo Web Analytics (Piwik) sur Ubuntu 18.04 avec Apache/Nginx

Ce tutoriel vous montrera comment installer Matomo Web Analytics (anciennement connu sous le nom de Piwik) sur Ubuntu 18.04 avec un serveur Web Apache ou Nginx. Matomo est une alternative open source à Google Analytics, qui est le logiciel d'analyse Web le plus utilisé.

Qu'est-ce que l'analyse Web ?

Les logiciels d'analyse Web sont utilisés par les sites Web pour savoir combien de visiteurs se trouvent sur un site par jour/semaine/mois, quel navigateur Web ils utilisent, etc. Il s'agit d'un logiciel crucial pour aider à développer leurs sites Web. Google Analytics est génial, mais les données des visiteurs du site Web sont stockées sur le serveur de Google. Si vous ne souhaitez pas partager les données des visiteurs de votre site Web avec un tiers, vous pouvez exécuter votre propre analyse Web. Il existe de nombreuses alternatives auto-hébergées à Google Analytics et Matomo en est une excellente.

Fonctionnalités Matomo

L'édition Matomo auto-hébergée open-source (sous licence GPL v3+) peut afficher les rapports suivants.

  • Principaux mots clés et moteurs de recherche, sites Web, sites Web de médias sociaux.
  • URL des meilleures pages, titres de page, pays des utilisateurs, fournisseurs, système d'exploitation, part de marché du navigateur, résolution d'écran, ordinateur VS mobile
  • Engagement (temps passé sur le site, pages par visite, visites répétées).
  • Meilleures campagnes, variables personnalisées, meilleures pages d'entrée/sortie, fichiers téléchargés et bien plus encore.
  • Classé en quatre principales catégories de rapports d'analyse :visiteurs, actions, référents, objectifs/e-commerce (plus de 30 rapports).
  • Rapports de statistiques par e-mail.
  • Analyse des journaux du serveur Web.
  • Suivez les visiteurs qui ont désactivé JavaScript.
  • Outils pour se conformer au RGPD (tels que le consentement aux cookies)
  • Installez des plug-ins gratuits ou premium pour étendre et étendre les fonctionnalités de Matomo.
  • Et bien plus encore.

Pour une liste complète des fonctionnalités, veuillez consulter la page des fonctionnalités de Matomo. J'aime particulièrement le fait que Matomo puisse répertorier toutes mes pages Web par pages vues et afficher le taux de rebond et le taux de sortie pour chaque page Web. Et aussi la carte des visiteurs en temps réel.

Carte des visiteurs en temps réel de Matomo

Avantages Matomo auto-hébergé

  • Contrôle total des données. Les données sont stockées sur votre serveur uniquement et vous pouvez choisir le pays dans lequel se trouve le serveur.
  • Aucune limite de données. Vous pouvez contenir autant de données que votre serveur le peut.
  • Entièrement personnalisable et extensible.
  • Firefox a commencé à bloquer les cookies de suivi intersites, y compris Google Analytics. En hébergeant le logiciel d'analyse sous votre propre nom de domaine, vos cookies de suivi ne seront pas bloqués.

Matomo hébergé dans le cloud a des fonctionnalités supplémentaires, mais vous pouvez installer un plug-in premium sur votre instance auto-hébergée pour obtenir les mêmes fonctionnalités.

Prérequis pour l'installation de Matomo Web Analytics (Piwik) sur Ubuntu 18.04

Pour suivre ce tutoriel, vous aurez besoin d'un nom de domaine et d'un serveur. J'ai enregistré mon nom de domaine chez NameCheap parce que le prix est bas et qu'ils offrent une protection de la confidentialité whois gratuite à vie. Un serveur avec 512 Mo de RAM suffit pour faire tourner Matomo et voici les hébergeurs que je recommande. Je les ai tous utilisés.

  • Vultr (à partir de 2,5 $/mois. Carte de crédit requise)
  • DigitalOcean (à partir de 5 $/mois. Aucune carte de crédit n'est requise. Vous pouvez utiliser Paypal).

Une fois que vous avez un serveur, installez-y Ubuntu et suivez les instructions ci-dessous.

Matomo est écrit en PHP et utilise la base de données MySQL/MariaDB. Pour suivre ce tutoriel, on suppose que vous avez déjà configuré la pile LAMP ou LEMP sur Ubuntu 18.04. Si ce n'est pas le cas, veuillez consulter l'un des didacticiels suivants :

  • Comment installer la pile LAMP sur le serveur Ubuntu 18.04
  • Comment installer la pile LEMP sur le serveur Ubuntu 18.04

Lorsque vous avez terminé de configurer la pile LAMP ou LEMP, revenez ici et lisez la suite.

Étape 1 :Téléchargez Matomo sur Ubuntu 18.04

Connectez-vous à votre serveur via SSH. Vous pouvez toujours utiliser la commande suivante pour télécharger la dernière version de Matomo sur votre serveur. Au moment d'écrire ces lignes, la dernière version est Matomo 3.7, qui vient avec une nouvelle fonctionnalité - le gestionnaire de balises. C'est l'une des étapes les plus importantes pour Matomo ces dernières années.

wget https://builds.matomo.org/matomo-latest.zip

Une fois téléchargé, extrayez l'archive avec unzip .

sudo apt install unzip

sudo unzip matomo-latest.zip -d /var/www/

Le -d L'option spécifie le répertoire cible. Les fichiers Web Matomo seront extraits vers /var/www/matomo/ . Ensuite, nous devons changer le propriétaire de ce répertoire en www-data afin que le serveur Web (Nginx) puisse écrire dans ce répertoire.

sudo chown www-data:www-data /var/www/matomo/ -R

Étape 2 :Créer une base de données et un utilisateur dans MariaDB

Connectez-vous au serveur de base de données MariaDB avec la commande suivante. Puisque MariaDB utilise maintenant unix_socket plugin pour authentifier la connexion de l'utilisateur, il n'est pas nécessaire d'entrer le mot de passe root MariaDB. Nous avons juste besoin de préfixer le mysql commande avec sudo .

sudo mysql

Alternativement, vous pouvez également utiliser cette commande pour vous connecter.

sudo mariadb

Créez ensuite une base de données pour Matomo. Ce tutoriel nomme la base de données matomo . Vous pouvez utiliser le nom de votre choix.

create database matomo;

Créez l'utilisateur de la base de données. Encore une fois, vous pouvez utiliser votre nom préféré pour cet utilisateur. Remplacez your-password avec votre mot de passe préféré.

create user matomouser@localhost identified by 'your-password';

Accordez à cet utilisateur tous les privilèges sur le matomo base de données.

grant all privileges on matomo.* to matomouser@localhost identified by 'your-password';

Vider les privilèges et quitter.

flush privileges;

exit;

Étape 3 :Créer un fichier de configuration Apache ou Nginx

Apache

Si vous préférez utiliser le serveur Web Apache, créez un fichier de configuration d'hôte virtuel dans /etc/apache2/sites-available/ répertoire.

sudo nano /etc/apache2/sites-available/matomo.conf

Mettez le texte suivant dans le fichier. Remplacez le texte de couleur rouge par vos données réelles. N'oubliez pas de définir un enregistrement A pour le nom de domaine.

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName analytics.example.com
        DocumentRoot /var/www/matomo/

        <Directory /var/www/matomo>
           DirectoryIndex index.php
           Options FollowSymLinks
           AllowOverride All
           Require all granted
        </Directory>

        <Files "console">
           Options None
           Require all denied
        </Files>

        <Directory /var/www/matomo/misc/user>
           Options None
           Require all granted
        </Directory>

        <Directory /var/www/matomo/misc>
           Options None
           Require all denied
        </Directory>

        <Directory /var/www/matomo/vendor>
           Options None
           Require all denied
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/matomo_error.log
        CustomLog ${APACHE_LOG_DIR}/matomo_access.log combined

</VirtualHost>

Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel.

sudo a2ensite matomo.conf

Rechargez le serveur Web Apache pour que la modification prenne effet.

sudo systemctl reload apache2

Nginx

Si vous préférez utiliser le serveur Web Nginx, créez un matomo.conf fichier dans /etc/nginx/conf.d/ répertoire.

sudo nano /etc/nginx/conf.d/matomo.conf

Mettez le texte suivant dans le fichier. Remplacez le texte de couleur rouge par vos données réelles. N'oubliez pas de définir un enregistrement A pour le nom de domaine.

server {
    listen [::]:80; # remove this if you don't want Matomo to be reachable from IPv6
    listen 80;
    server_name analytics.example.com;

    access_log /var/log/nginx/matomo.access.log;
    error_log /var/log/nginx/matomo.error.log;

    root /var/www/matomo/; 
    
    index index.php;
        
    ## only allow accessing the following php files
    location ~ ^/(index|matomo|piwik|js/index).php {
        include snippets/fastcgi-php.conf;
        fastcgi_param HTTP_PROXY ""; # prohibit httpoxy: https://httpoxy.org/
        fastcgi_pass unix:/run/php/php7.2-fpm.sock; 
    }
    
    ## needed for HeatmapSessionRecording plugin
    location = /plugins/HeatmapSessionRecording/configs.php { 
        include snippets/fastcgi-php.conf;
        fastcgi_param HTTP_PROXY "";
        fastcgi_pass unix:/run/php/php7.2-fpm.sock; 
    }
    
    ## deny access to all other .php files
    location ~* ^.+\.php$ {
        deny all;
        return 403;
    }

    ## serve all other files normally 
    location / {
        try_files $uri $uri/ =404;
    }
    
    ## disable all access to the following directories 
    location ~ /(config|tmp|core|lang) {
        deny all;
        return 403; # replace with 404 to not show these directories exist
    }
    location ~ /\.ht {
        deny  all;
        return 403;
    }

    location ~ \.(gif|ico|jpg|png|svg|js|css|htm|html|mp3|mp4|wav|ogg|avi|ttf|eot|woff|woff2|json)$ {
        allow all;
        ## Cache images,CSS,JS and webfonts for an hour
        ## Increasing the duration may improve the load-time, but may cause old files to show after an Matomo upgrade
        expires 1h;
        add_header Pragma public;
        add_header Cache-Control "public";
    }

    location ~ /(libs|vendor|plugins|misc/user) {
        deny all;
        return 403;
    }

    ## properly display textfiles in root directory
    location ~/(.*\.md|LEGALNOTICE|LICENSE) {
        default_type text/plain;
    }
}

Enregistrez et fermez le fichier. Testez la configuration de Nginx, puis rechargez Nginx pour que les modifications prennent effet.

sudo nginx -t

sudo systemctl reload nginx

Étape 4 :Installer et activer les modules PHP

Exécutez les commandes suivantes pour installer les modules PHP requis ou recommandés par Matomo.

sudo apt install php-imagick php7.2-mysql php7.2-fpm php7.2-common php7.2-gd php7.2-json php7.2-curl  php7.2-zip php7.2-xml php7.2-mbstring php7.2-bz2 php7.2-intl

Si vous utilisez le serveur Web Apache, vous devez le recharger pour le faire fonctionner avec ces modules PHP.

sudo systemctl reload apache2

Les utilisateurs de Nginx n'ont pas besoin de recharger.

Vous devriez maintenant pouvoir visiter l'assistant d'installation Web de Matomo à l'adresse http://analytics.example.com , mais avant de saisir des informations, activons HTTPS.

Étape 5 :Activer HTTPS

Pour chiffrer le trafic HTTP lorsque vous visitez l'interface Web Matomo, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let's Encrypt. Exécutez les commandes suivantes pour installer le client Let's Encrypt (certbot) sur Ubuntu 18.04.

sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install certbot

Si vous utilisez Nginx, vous devez également installer le plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Exécutez ensuite la commande suivante pour obtenir et installer le certificat TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d analytics.example.com

Si vous utilisez Apache, vous devez également installer le plugin Certbot Apache.

sudo apt install python3-certbot-apache

Exécutez ensuite cette commande pour obtenir et installer le certificat TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d analytics.example.com

Explication :

  • --nginx  :Utilisez le plug-in nginx.
  • --apache :Utilisez le plug-in Apache.
  • --agree-tos  :acceptez les conditions d'utilisation.
  • --redirect  :Forcer HTTPS par redirection 301.
  • --hsts  : ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine. Protège contre le SSL/TLS Stripping.
  • --staple-ocsp  : Active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat que le serveur propose pendant TLS.

Le certificat devrait maintenant être obtenu et installé automatiquement.

Étape 6 :terminez l'installation dans votre navigateur Web

Accédez à https://analytics.example.com pour lancer l'assistant d'installation Web. Cliquez ensuite sur Next bouton.

Il vérifiera si votre système répond aux exigences telles que les extensions PHP. Si toutes les conditions sont remplies, cliquez sur Next .

À l'étape suivante, entrez le nom d'utilisateur, le mot de passe et le nom de la base de données MariaDB que vous avez créés précédemment. Vous pouvez utiliser la valeur par défaut dans d'autres champs.

Après avoir cliqué sur Suivant, l'assistant d'installation créera automatiquement des tables dans la base de données. Cliquez sur Next pour continuer.

Dans l'écran suivant, créez un utilisateur administrateur pour l'interface Web Matomo.

Après avoir créé l'utilisateur administrateur, vous devez ajouter un site Web pour collecter des données d'analyse.

Ensuite, vous devez ajouter le code de suivi JavaScript à votre site Web.

Une fois que c'est fait. Cliquez sur le bouton Suivant et votre installation Matomo est terminée. Vous pouvez maintenant vous connecter au tableau de bord Matomo et afficher les données des visiteurs.

Configurer des tâches Cron pour les sites Web à trafic moyen et élevé

Si votre site Web compte des milliers de pages vues par jour, il est nécessaire de configurer une tâche cron pour archiver automatiquement les rapports Matomo. Créez le fichier de travail Cron avec la commande suivante.

sudo nano /etc/cron.d/matomo-archive

Ajoutez ensuite les lignes suivantes au fichier.

MAILTO="[email protected]"
5 * * * * www-data /usr/bin/php /var/www/matomo/console core:archive --url=https://analytics.example.com > /dev/null

La sortie standard sera envoyée à /dev/null et l'erreur standard sera envoyée à votre adresse e-mail. Enregistrez et fermez le fichier. Cette tâche Cron s'exécutera toutes les heures toutes les 5 minutes.

Comment configurer la notification par e-mail

S'il y a plus d'un utilisateur, c'est une bonne idée de permettre à Matomo d'envoyer des notifications par e-mail comme des e-mails de réinitialisation de mot de passe. Pour savoir comment configurer un serveur de messagerie, veuillez consulter le didacticiel suivant. Remarque que je recommande fortement d'exécuter le serveur de messagerie iRedMail sur un nouveau système d'exploitation propre. L'installation d'iRedMail sur un système d'exploitation doté d'autres applications Web peut échouer et probablement casser les applications existantes.

  • Comment configurer facilement un serveur de messagerie complet sur Ubuntu 18.04 avec iRedMail

Si vous ne souhaitez pas exécuter votre propre serveur de messagerie, vous pouvez configurer un relais SMTP à la place. Veuillez consulter le didacticiel suivant.

  • Comment configurer le relais SMTP Postfix sur le serveur Ubuntu 18.04

Comment configurer une géolocalisation précise avec GeoIP

Par défaut, Matomo devine l'emplacement des visiteurs en fonction de la langue qu'ils utilisent. Ce n'est pas exact. Par exemple, de nombreux visiteurs non américains choisissent En-US comme langue par défaut pour leur système d'exploitation, il y aura donc plus de "visiteurs américains" dans le rapport Matomo.

Pour obtenir une meilleure géolocalisation, cliquez sur l'icône de rouage (Administration) dans Matomo, allez dans System -> Geolocation . Téléchargez ensuite la dernière base de données Maxmind GeoIP sur votre serveur.

wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz

Extrayez l'archive.

tar xvf GeoLite2-City.tar.gz

L'archive sera extraite dans un répertoire nommé comme ceci GeoLite2-City_20190226 . Déplacez ensuite le fichier GeoLite2-City.mmdb vers /var/www/matomo/misc/ répertoire.

sudo mv GeoLite2-City_20190226/GeoLite2-City.mmdb /var/www/matomo/misc/

Rechargez maintenant la page des paramètres de Matomo Geolocation. Choisissez le deuxième fournisseur de localisation :GeoIP 2 (Php)

Cliquez sur le bouton Enregistrer pour enregistrer vos paramètres. Dans la partie inférieure de cette page, vous pouvez également entrer l'URL de téléchargement afin que Matomo puisse automatiquement mettre à jour la base de données GeoIP.

Autres choses à faire

  • Abonnez-vous au flux RSS du journal des modifications de Matomo pour être averti lorsqu'une nouvelle version sort.
  • Consultez les conseils de sécurité de Matomo.
  • Lisez les conseils de réglage des performances de Matomo.

C'est ça! J'espère que ce tutoriel vous a aidé à installer Matomo sur le serveur Ubuntu 18.04 avec Apache ou Nginx. Comme toujours, si vous avez trouvé cet article utile, abonnez-vous à notre newsletter gratuite pour obtenir plus de conseils et astuces. Prenez soin de vous 🙂


Ubuntu
  1. Comment installer le serveur Web Nginx sur Ubuntu 18.04

  2. Comment installer Jenkins Automation Server avec Apache sur Ubuntu 16.04

  3. Installer le serveur Web Apache sur Ubuntu 12.10

  4. Comment installer Matomo Web Analytics sur Ubuntu 20.04

  5. Installez phpMyAdmin sur Ubuntu 20.04 avec Nginx

Installez Matomo Web Analytics (Piwik) sur Ubuntu 20.04 avec Apache/Nginx

Comment installer InvoiceNinja sur le serveur Ubuntu 20.04 avec Apache/Nginx

Commandes pour installer le serveur Web Apache sur Ubuntu 22.04 ou 20.04 LTS

Comment installer le serveur Web Apache sur Ubuntu 18.04

Comment installer le serveur Web Nginx sur Ubuntu 20.04

Comment installer le serveur Web Apache sur Ubuntu 20.04