Matomo Web Analytics installeren met Nginx op FreeBSD 12.0
Matomo(voorheen Piwik ) is een gratis en open-source web analytics toepassing, ontwikkeld door een team van internationale ontwikkelaars, die draait op een PHP/MySQL webserver. Het houdt online bezoeken aan een of meer websites bij en toont rapporten over deze bezoeken om te analyseren. Je kunt het zien als een alternatief voor Google Analytics. Matomo is een 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 handleiding laat zien hoe je Matomo installeert op een FreeBSD 12.0 systeem met Nginx als webserver en we beveiligen de website met een Let’s Encrypt SSL certificaat.
Vereisten
Om Matomo (Piwik) op je FreeBSD 12.0 systeem te draaien heb je een paar dingen nodig:
- Een webserver zoals Apache, Nginx, IIS.
- PHP versie 5.5.9 of hoger metpdo 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 FreeBSD 12.0.
- Een niet-root gebruiker met sudo privileges.
Eerste stappen
Controleer je FreeBSD versie:
uname -ro
# FreeBSD 12.0-RELEASE
Stel de tijdzone in:
tzsetup
Werk je besturingssysteem pakketten (software) bij. Dit is een belangrijke eerste stap omdat het ervoor zorgt dat je de laatste updates en beveiligingsfixes voor de standaard softwarepakketten van je besturingssysteem hebt:
freebsd-update fetch install
pkg update && pkg upgrade -y
Installeer enkele essentiƫle pakketten die nodig zijn voor het basisbeheer van het FreeBSD 12.0 besturingssysteem:
pkg install -y sudo vim unzip wget bash
Stap 1 – Installeer MySQL en maak een database voor Matomo
Matomo ondersteunt MySQL en MariaDB databases. In deze tutorial zullen we MySQL als databaseserver gebruiken.
Installeer MySQL databaseserver:
sudo pkg install -y mysql57-server
Controleer de MySQL versie:
mysql --version
# mysql Ver 14.14 Distrib 5.7.26, for FreeBSD12.0 (amd64) using EditLine wrapper
Schakel de MySQL service in en start hem:
sudo sysrc mysql_enable="yes"
sudo service mysql-server start
Voer mysql_secure installation
script om MySQL beter te beveiligen en stel het wachtwoord in voor MySQL root
gebruiker:
sudo mysql_secure_installation
Beantwoord elk van de vragen:
Would you like to setup VALIDATE PASSWORD plugin? N
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 MySQL shell als de root gebruiker:
sudo mysql -u root -p
# Enter password
Maak een lege MySQL database en gebruiker voor Matomo en onthoud de credentials:
CREATE DATABASE dbname;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
Sluit MySQL af:
exit
Vervang dbname
, 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 pkg install -y php73 php73-ctype php73-curl php73-dom php73-hash php73-iconv php73-gd php73-json php73-mbstring php73-openssl php73-session php73-simplexml php73-xml php73-zip php73-zlib php73-pdo php73-pdo_mysql php73-mysqli php73-filter php73-ftp php73-tokenizer php73-calendar php73-pecl-APCu php73-opcache
Controleer de PHP versie:
php --version
# PHP 7.3.7 (cli) (built: Jul 25 2019 01:28:53) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.7, Copyright (c) 1999-2018, by Zend Technologies
Schakel de PHP-FPM dienst in en start hem:
sudo sysrc php_fpm_enable=yes
sudo service php-fpm start
We kunnen overgaan tot de volgende stap, namelijk het verkrijgen van gratis SSL certs van Let’s Encrypt CA.
Stap 3 – Installeer acme.sh
client en verkrijg Let’s Encrypt certificaat(optioneel)
Je website beveiligen met HTTPS 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 programma Acme.sh. Acme.sh is een pure UNIX shell software om TLS certificaten te verkrijgen van Let’s Encrypt zonder afhankelijkheden.
Download en installeer Acme.sh:
sudo pkg install -y acme.sh
Controleer de versie van Acme.sh:
acme.sh --version
# v2.8.2
Verkrijg RSA en ECC/ECDSA certificaten voor je domein/hostname:
# RSA
sudo acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength 2048
# ECDSA
sudo acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength ec-256
Na het uitvoeren van de bovenstaande commando’s zijn je certificaten en sleutels zich in:
- Voor RSA:
/etc/letsencrypt/example.com
map. - Voor ECC/ECDSA:
/etc/letsencrypt/example.com_ecc
map.
Stap 3 – Installeer NGINX en configureer NGINX voor Matomo
Matomo kan prima werken met veel populaire webserver software. In deze tutorial kiezen we voor Nginx.
Download en installeer de nieuwste mainline versie van Nginx uit de FreeBSD repository:
sudo pkg install -y nginx-devel
Controleer de Nginx versie:
nginx -v
# nginx version: nginx/1.17.2
Schakel Nginx in en start het:
sudo sysrc nginx_enable=yes
sudo service nginx start
Configureer Nginx voor Matomo door te draaien:
sudo vim /usr/local/etc/nginx/matomo.conf
En vul het bestand met de volgende configuratie:
server {
listen [::]:443 ssl;
listen 443 ssl;
listen [::]:80;
listen 80;
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;
server_name example.com;
root /usr/local/www/matomo;
index index.php;
location ~ ^/(index|matomo|piwik|js/index).php {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $fastcgi_script_name =404;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_param HTTP_PROXY "";
fastcgi_pass 127.0.0.1:9000;
}
location = /plugins/HeatmapSessionRecording/configs.php {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $fastcgi_script_name =404;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
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 ~ /\.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;
expires 1h;
add_header Pragma public;
add_header Cache-Control "public";
}
location ~ /(libs|vendor|plugins|misc/user) {
deny all;
return 403;
}
location ~/(.*\.md|LEGALNOTICE|LICENSE) {
default_type text/plain;
}
}
OPMERKING: Voor complete en productieklare Nginx config voor Matomo bezoek jehttps://github.com/matomo-org/matomo-nginx.
Draai sudo vim /usr/local/etc/nginx/nginx.conf
en voeg de onderstaande regel toe aan http {}
blok om Matomo config op te nemen.
include matomo.conf;
Controleer Nginx configuratie op syntaxfouten:
sudo nginx -t
Herlaad Nginx service:
sudo service nginx reload
Stap 4 - Installeer Matomo Analytics
Navigeer naar de /usr/local/www
map:
cd /usr/local/www/
Download de nieuwste release Matomo viawget
en pak het uit:
sudo wget https://builds.matomo.org/matomo.zip && sudo unzip matomo.zip
Verwijder het gedownloade matomo.zip
bestand:
sudo rm matomo.zip
Verandereigendom van de /usr/local/www/matomo
directory naar www
gebruiker:
sudo chown -R www:www /usr/local/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 daarna 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 super gebruikersaccount 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.