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:

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 daarna 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 super gebruikersaccount 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.