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 installation
script om MariaDB beter te beveiligen en stel het wachtwoord in voor MariaDBroot
gebruiker:
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/matomo
directory 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:
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:
Vul vervolgens de gegevens van de databank in en klik op het"Volgende"knop:
Als alles goed ging met het opzetten van de database zou je deboodschap"Tables created with success! " moeten zien :
Maak Matomo superuser account aan en klik op de "Volgende"knop:
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:
Vervolgens krijg je de JavaScript tracking code voor je site die je moet toevoegen om te beginnen met volgen.
Vervolgens zou je moeten zien dat de Matomo installatie voltooid is.
Gefeliciteerd! Je Matomo installatie is voltooid.