13/11/2020


Récupérer des statistiques de vos sites web avec matomo

Installation

Installation de l’environnement

L’environnement que je vais vous montrer est composé de :

Pour la configuration de ces techno je vous renvoie vers les précédents tutos ;)

N’oubliez pas d’installer les paquet php-pdo et php-mysql

Configuration nginx

server {

  listen 80;
  server_name _;
  root /var/www/html/matomo/;
  index index.php;

  location ~ ^/(index|matomo|piwik|js/index).php {
    include snippets/fastcgi-php.conf;
    fastcgi_param HTTP_PROXY ""; 
    fastcgi_pass 127.0.0.1:9000;
  }
  
  location = /plugins/HeatmapSessionRecording/configs.php {
    include snippets/fastcgi-php.conf;
    fastcgi_param HTTP_PROXY "";
    fastcgi_pass 127.0.0.1:9000;
  }

  location ~* ^.+\.php$ {
    deny all;
    return 403;
  }

  location / {
    try_files $uri $uri/ =404;
  }
  
  location ~ /(config|tmp|core|lang) {
    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;
  }

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

}

Installation de matomo

Télécharger le projet sur le site officiel : https://builds.matomo.org/matomo.zip

décompressez le et placez le sur votre serveur

cd /var/www/html
wget https://builds.matomo.org/matomo.zip
unzip matomo.zip
chmod 755 -R matomo
chown www-data:www-data -R matomo

Connecter vous à votre matomo avec votre navigateur et suivez les instructions

Ajout du scripts

Pour finir il faut rajouter le script Javascript sur TOUTES les pages de votre site.

<!-- Matomo -->
<script type="text/javascript">
  var _paq = window._paq = window._paq || [];
  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
  _paq.push(["setRequestMethod", "POST"]);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="//arkalo.ovh/";
    _paq.push(['setTrackerUrl', u+'data.php']);
    _paq.push(['setSiteId', '1']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.type='text/javascript'; g.async=true; g.src=u+'data.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo Code -->

N’oubliez pas de mettre l’adresse de votre matomo à la place de matomo.public.url.com

Attention l’url doit être public !

Petite particularité de ce script c’est que j’ai changé la method GET en POST pour ne pas être géné par les bloquer de pub

Voilà, normalement en vous connectant à matomo vous récupèrerai les stats de vos site.

Les bloqueur de pub et firefox sur desktop désactive le script Javascript du coup vous n’aurez pas de données pour ces cas là

Workaround nginx

Sur le même domaine que le site j’ai mis des proxy_pass pour rester dans le même domaine que le site. Toujours dans le but que les bloqueurs de pub me laisse tranquille

 \# workaround ublock for matomo 
 location ^~ /data.js { 
     proxy_set_header X-Real-IP $remote_addr;  
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
     proxy_pass http://matomo.private/matomo.js; 
 } 
 location ^~ /data.php { 
     proxy_set_header X-Real-IP $remote_addr;  
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
     proxy_pass http://matomo.private/matomo.php; 
 }