Matomo Web Analytics installeren op CentOS 7
Matomo (voorheenPiwik)is eengratisenopen bronwebanalysetoepassing, ontwikkeld door een team van internationale ontwikkelaars, die draait op eenPHP/MySQLwebserver. Het volgt onlinebezoekenaan eenof meerwebsitesengeeft 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 testen, Heatmaps, Funnels, Tracking en Rapportage API, Google AdWords, Facebook Ads, Bing Ads, Cost Per Click (CPC), enz. Deze zelfstudie laat je zien hoe je Matomo installeert op een CentOS 7systeem met Nginx als webserver en we zullen de website beveiligen met een Let’s Encrypt SSL certificaat.
Vereisten
Om Matomo (Piwik) op je CentOS 7 systeem te draaien heb je een paar dingen nodig:
- Webserver zoals Apache, Nginx, IIS.
- PHP versie 5.5.9 of hoger met pdoen 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 CentOS 7.
- Een niet-root gebruiker met sudo privileges.
Eerste stappen
Controleer je CentOS versie:
cat /etc/centos-release
Stel de tijdzone in:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Werk je pakketten (software) voor het besturingssysteem bij. Dit is een belangrijke eerste stap omdat je er zeker van bent dat je de laatste updates en beveiligingsfixes hebt voor de standaard softwarepakketten van je besturingssysteem:
sudo yum update -y
Installeer enkele essentiƫle pakketten die nodig zijn voor het basisbeheer van het CentOS besturingssysteem:
sudo yum install -y curl wget vim git unzip socat epel-release
Stap 1 – Installeer MariaDB en maak een database voor Matomo
Matomo ondersteunt MySQL en MariaDB databases. In deze zelfstudie zullen we MariaDB gebruiken als de databaseserver.
Maak MariaDB 10.2 YUM repository voor CentOS:
sudo vim /etc/yum.repos.d/MariaDB.repo
Kopieer en plak er de volgende tekst in:
# MariaDB 10.2 CentOS repository list - created 2017-12-11 23:19 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name=MariaDB
baseurl=https://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Nadat het bestand op zijn plaats staat, installeer je MariaDB door te draaien:
sudo yum install -y MariaDB-server MariaDB-client
Controleer de versie van MariaDB:
mysql --version
# mysql Ver 15.1 Distrib 10.2.21-MariaDB, for Linux (x86_64) using readline 5.1
Start de MariaDB dienst en schakel die in:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Voermysql_secure installation
script om de beveiligingvan MariaDB te verbeteren en het wachtwoord voor MariaDB in te stellenroot
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 alsde root gebruiker:
sudo mysql -u root -p
# Enter password
Maak een lege MariaDB databaseen gebruiker voor Matomo en onthoud de credentials:
MariaDB [(none)]> CREATE DATABASE dbname;
MariaDB [(none)]> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
Sluit MariaDB af:
MariaDB [(none)]> exit
Vervangdbname
,username
enpassword
door je eigen namen.
Stap 2 - Installeer PHP en de nodige PHP uitbreidingen
Installeer de Webtatic YUM repo:
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Installeer PHP, en ook de nodige PHP uitbreidingen:
sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-curl php72w-gd php72w-xml php72w-mbstring php72w-mysqlnd php72w-json
Om PHP gecompileerd in modules te tonen, kun je uitvoeren:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Controleer de PHP versie:
php --version
# PHP 7.2.14 (cli) (built: Jan 8 2019 09:59:17) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Start en schakel de PHP-FPM dienst in:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
We kunnen overgaan tot de volgende stap, namelijk het verkrijgen van gratis SSL certs van Let's Encrypt CA.
Stap 3 - Installeeracme.sh
clienten 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 pure UNIX shell software om TLS certificaten te verkrijgen 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
Verkrijg RSAen ECC/ECDSAcertificaten voorje domein/hostnaam:
# 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 jecertificatenensleutelszichin:
- 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 zelfstudie kiezen we Nginx.
Download en installeer Nginx uit de CentOS repository:
sudo yum install -y nginx
Controleer de Nginx versie:
sudo nginx -v
Start Nginx en schakel de Nginx dienst in:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Configureer Nginx voor Matomo door te draaien:
sudo vim /etc/nginx/conf.d/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 {
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;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
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;
include fastcgi.conf;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
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;
}
}
OPMERKING:Voor complete en productieklare Nginx config voor Matomo bezoek jehttps://github.com/matomo-org/matomo-nginx.
Controleer Nginx configuratie op syntaxfouten:
sudo nginx -t
Herlaad Nginx service:
sudo systemctl reload nginx.service
Stap 4 - Installeer Matomo Analytics
Maak/var/www
map aan:
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 gedownloadematomo.zip
bestand:
sudo rm matomo.zip
Veranderhet eigendom van de/var/www/matomo
directoryinnginx
gebruiker:
sudo chown -R nginx:nginx /var/www/matomo
Startsudo vim /etc/php-fpm.d/www.conf
en stelgebruiker en groep in opnginx
. Aanvankelijk zal het ingesteld zijn op gebruiker en groepapache
.
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Herstart de PHP-FPM dienst.
sudo systemctl restart php-fpm.service
Stap 5 - Voltooi de Matomo Analytics setup
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 omnaar 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 de boodschap"Tablescreated 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.