Matomo Web Analytics installeren op Debian 9

Matomo (voorhee n Piwik)is een gratise n open bronwebanalysetoepassing, ontwikkeld door een team van internationale ontwikkelaars, die draait op een PHP/MySQLwebserver. Het volgt online bezoekenaan een of meer websitesen geeft rapporten over die bezoeken weer voor analyse. Je kunt het zien als een alternatief voor Google Analytics. Matomo is open source en zijn code is openbaar beschikbaar op Github. Enkele van de functies die het heeft zijn:A/B Testing, Heatmaps, Funnels, Tracking en Reporting API, Google AdWords, Facebook Ads, Bing Ads, Cost Per Click (CPC), enz. Deze zelfstudie laat je zien hoe je Matomo installeert op een Debian 9(stretch) systeem met Nginx als webserver en we beveiligen de website met een Let’s Encrypt SSL certificaat.

Vereisten

Om Matomo (Piwik) op je Debian systeem te draaien heb je een paar dingen nodig:

  • Webserver zoals Apache of Nginx.
  • PHP versie 5.5.9 of hoger met pdo en pdo_mysql of mysqli, gd, xml, curl, en mbsting uitbreidingen. PHP 7+ wordt aanbevolen.
  • MySQL versie 5.5 of hoger, of de gelijkwaardige MariaDB versie. MySQL 5.7+ is aanbevolen.

Vereisten

  • Een besturingssysteem met Debian 9 (stretch).
  • Een niet-root gebruiker met sudo privileges.

Eerste stappen

Controleer je Debian versie:

lsb_release -ds
# Debian GNU/Linux 9.6 (stretch)

Stel de tijdzone in:

dpkg-reconfigure tzdata

Werk je besturingssysteem pakketten (software) bij. Dit is een belangrijke eerste stap omdat je er zeker van bent dat je de laatste updates en beveiligingsfixes voor de standaard softwarepakketten van je besturingssysteem hebt:

apt update && apt upgrade -y

Installeer enkele essentiƫle pakketten die nodig zijn voor het basisbeheer van het Debian besturingssysteem:

apt install -y curl wget vim git unzip socat sudo

Stap 1 – Installeer MySQL en maak een database voor Matomo

Matomo ondersteunt MySQL en MariaDB databases. Het Debian team heeft MySQL vervangen door MariaDB als standaard database vanaf Debian 9 (stretch), dus in deze tutorial zullen we MariaDB gebruiken als de databaseserver. Als je de originele MySQL wilt installeren, kun je de officiƫle MySQL repository, die door Oracle wordt onderhouden, toevoegen en gebruiken.

Installeer MariaDB databaseserver:

sudo apt install -y mariadb-server

Controleer de versie van MariaDB:

mysql --version
# mysql  Ver 14.14 Distrib 5.7.24, for Linux (x86_64) using  EditLine wrapper

Voe r mysql_secure installationscript om MariaDB beter te beveiligen en stel het wachtwoord in voor MariaDBrootgebruiker:

sudo mysql_secure_installation

Beantwoord elk van de vragen:

Enter current password for root (enter for none): Press Enter
Set root password? [Y/n] y
New password: your_secure_password
Re-enter new password: your_secure_password
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Maak verbinding met MariaDB shell als de root gebruiker:

sudo mysql -u root -p
# Enter password

Maak een lege MariaDB database en gebruiker voor Matomo en onthoud de credentials:

mysql> CREATE DATABASE dbname;
mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mysql> FLUSH PRIVILEGES;

Sluit MariaDB af:

mysql> exit

Vervangdbname, username en password door je eigen namen.

Stap 2 - Installeer PHP en de nodige PHP uitbreidingen

Installeer PHP, en ook de nodige PHP uitbreidingen:

sudo apt install -y php7.0 php7.0-cli php7.0-fpm php7.0-common php7.0-curl php7.0-gd php7.0-xml php7.0-mbstring php7.0-mysql

Controleer de PHP versie:

php --version

# PHP 7.0.33-0+deb9u1 (cli) (built: Dec  7 2018 11:36:49) ( NTS )
# Copyright (c) 1997-2017 The PHP Group
# Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
# with Zend OPcache v7.0.33-0+deb9u1, Copyright (c) 1999-2017, by Zend Technologies

De PHP-FPM dienst wordt op een Debian 9 systeem automatisch gestart en ingeschakeld bij het herstarten, dus het is niet nodig hem handmatig te starten en in te schakelen. We kunnen verder met de volgende stap, namelijk het verkrijgen van gratis SSL certs van Let's Encrypt CA.

Stap 3 - Installeer acme.sh client en verkrijg het Let's Encrypt certificaat(optioneel)

Je website met HTTPS beveiligen is niet noodzakelijk, maar het is een goed gebruik om het verkeer op je site te beveiligen. Om een TLS certificaat van Let's Encrypt te krijgen gebruiken we het acme.sh programma. Acme.sh is een zuivere Unix shell software voor het verkrijgen van TLS certificaten van Let's Encrypt zonder afhankelijkheden.

Download en installeer acme.sh:

sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]
cd ~

Controleer de versie van acme.sh:

/etc/letsencrypt/acme.sh --version
# v2.8.0

VerkrijgRSA en ECC/ECDSA certificaten voor je domein/hostname:

# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength ec-256

Na het uitvoeren van de bovenstaande commando's zijn je certificatene n sleutelszich in:

  • Voor RSA: /etc/letsencrypt/example.com map.
  • Voor ECC/ECDSA: /etc/letsencrypt/example.com_ecc directory.

Stap 3 - Installeer NGINX en configureer NGINX voor Matomo

Matomo kan prima werken met veel populaire webserver software. In deze zelfstudie kiezen we Nginx.

Download en installeer Nginx uit de Debian repository:

sudo apt install -y nginx

Controleer de Nginx versie:

sudo nginx -v
# nginx version: nginx/1.10.3

Configureer Nginx voor Matomo door te draaien:

sudo vim /etc/nginx/sites-available/matomo.conf

En vul het bestand met de volgende configuratie:

server {

listen [::]:443 ssl http2;
listen 443 ssl http2;
listen [::]:80;
listen 80;

server_name example.com;
root /var/www/matomo/;
index index.php;

ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;

location ~ ^/(index|matomo|piwik|js/index).php {
include snippets/fastcgi-php.conf;
fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}

location
= /plugins/HeatmapSessionRecording/configs.php {
include snippets/fastcgi-php.conf;
fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}

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;
}

}

OPMERKING: Voor complete en productieklare Nginx config voor Matomo bezoek je https://github.com/matomo-org/matomo-nginx.

Activeer de nieuwe matomo.conf configuratie door het bestand te linken naar de sites-enabled directory.

sudo ln -s /etc/nginx/sites-available/matomo.conf /etc/nginx/sites-enabled

Controleer de Nginx configuratie op syntaxfouten:

sudo nginx -t

Herlaad Nginx service:

sudo systemctl reload nginx.service

Stap 4 - Installeer Matomo Analytics

Maak/var/www map:

sudo mkdir -p /var/www

Navigeer naar de/var/www directory:

cd /var/www/

Download de nieuwste release Matomo via wget en pak het uit:

sudo wget https://builds.matomo.org/matomo.zip && sudo unzip matomo.zip

Verwijder gedownloadmatomo.zip bestand:

sudo rm matomo.zip

Veranderhet eigendom van de /var/www/matomodirectory in www-data gebruiker:

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

Stap 5 - Voltooi de installatie van Matomo Analytics

Open je site in een webbrowser en volg de Matomo web installatie wizard.

Eerst moet het Matomo welkomstbericht verschijnen. Klik op de "Next " knop:

Matomo installatie Wizard

Daarna zie je een "System Check " pagina. Als er iets ontbreekt zie je een waarschuwing. Als alles met een groen vinkje is gemarkeerd klik je op de "Next " knop om naar de volgende stap te gaan:

Systeemcontrole

Vul vervolgens de gegevens van de databank in en klik op het"Volgende"knop:

Database opzet

Als alles goed ging met het opzetten van de database zou je deboodschap"Tables created with success! " moeten zien :

Aanmaken van databasetabellen

Maak Matomo superuser account aan en klik op de "Volgende"knop:

Maak een super gebruikers account aan

Zet vervolgens de eerste website op die je met Matomo wilt volgen en analyseren. Later kun je meer sites toevoegen om met Matomo te volgen:

Website toevoegen aan Matomo

Vervolgens krijg je de JavaScript tracking code voor je site die je moet toevoegen om te beginnen met volgen.

Javascript traceercode

Vervolgens zou je moeten zien dat de Matomo installatie voltooid is.

Matomo installatie voltooid

Gefeliciteerd! Je Matomo installatie is voltooid.