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 installationscript 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,usernameenpassworddoor 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.confen 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:

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 omnaar 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 de boodschap"Tablescreated 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.