Matomo (precedentemente Piwik) è un applicazione di analisi Web gratuita e open source sviluppata da un team di sviluppatori internazionali, che viene eseguita su un server Web PHP/MySQL . Tiene traccia delle visite online a uno o più siti web e visualizza i rapporti su queste visite per l'analisi. Puoi pensarlo come un'alternativa a Google Analytics. Matomo è open source e il suo codice è disponibile pubblicamente su Github. Alcune delle funzionalità che ha sono: test A/B, mappe di calore, canalizzazioni, API di monitoraggio e reporting, Google AdWords, annunci di Facebook, annunci Bing, costo per clic (CPC), ecc. Questo tutorial ti mostrerà come installare Matomo su un sistema CentOS 7 che utilizza Nginx come server Web e proteggeremo il sito Web con un certificato SSL Let's Encrypt.
Requisiti
Per eseguire Matomo (Piwik) sul tuo sistema CentOS 7 avrai bisogno di un paio di cose:
- Server web come Apache, Nginx, IIS.
- PHP versione 5.5.9 o successiva con pdo e pdo_mysql o estensioni mysqli, gd, xml, curl e mbsting. Si consiglia PHP 7+.
- MySQL versione 5.5 o successiva, o la versione equivalente di MariaDB. Si consiglia MySQL 5.7+.
Prerequisiti
- Un sistema operativo che esegue CentOS 7.
- Un utente non root con privilegi sudo.
Passaggi iniziali
Controlla la tua versione di CentOS:
cat /etc/centos-release
Imposta il fuso orario:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Aggiorna i pacchetti del tuo sistema operativo (software). Questo è un primo passo importante perché ti assicura di avere gli ultimi aggiornamenti e correzioni di sicurezza per i pacchetti software predefiniti del tuo sistema operativo:
sudo yum update -y
Installa alcuni pacchetti essenziali che sono necessari per l'amministrazione di base del sistema operativo CentOS:
sudo yum install -y curl wget vim git unzip socat epel-release
Passaggio 1:installa MariaDB e crea un database per Matomo
Matomo supporta i database MySQL e MariaDB. In questo tutorial, utilizzeremo MariaDB come server di database.
Crea il repository YUM MariaDB 10.2 per CentOS:
sudo vim /etc/yum.repos.d/MariaDB.repo
Copia e incolla il seguente testo al suo interno:
# 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
Dopo che il file è a posto, installa MariaDB eseguendo:
sudo yum install -y MariaDB-server MariaDB-client
Controlla la versione di MariaDB:
mysql --version
# mysql Ver 15.1 Distrib 10.2.21-MariaDB, for Linux (x86_64) using readline 5.1
Avvia e abilita il servizio MariaDB:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Esegui mysql_secure installation
script per migliorare la sicurezza di MariaDB e impostare la password per MariaDB root
utente:
sudo mysql_secure_installation
Rispondi a ciascuna delle domande:
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
Connettiti a MariaDB shell come utente root:
sudo mysql -u root -p
# Enter password
Crea un database MariaDB vuoto e un utente per Matomo e ricorda le credenziali:
MariaDB [(none)]> CREATE DATABASE dbname;
MariaDB [(none)]> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
Esci da MariaDB:
MariaDB [(none)]> exit
Sostituisci dbname
, username
e password
con i tuoi nomi.
Fase 2:installa PHP e le estensioni PHP necessarie
Imposta il repository YUM di Webtatic:
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Installa PHP e le estensioni PHP necessarie:
sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-curl php72w-gd php72w-xml php72w-mbstring php72w-mysqlnd php72w-json
Per mostrare PHP compilato nei moduli, puoi eseguire:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Controlla la versione PHP:
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
Avvia e attiva il servizio PHP-FPM:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Possiamo passare al passaggio successivo, ovvero ottenere certificati SSL gratuiti da Let's Encrypt CA.
Passaggio 3:installa acme.sh
client e ottenere il certificato Let's Encrypt (opzionale )
Proteggere il tuo sito web con HTTPS non è necessario, ma è una buona pratica per proteggere il traffico del tuo sito. Per ottenere un certificato TLS da Let's Encrypt utilizzeremo il client Acme.sh. Acme.sh è un puro software shell UNIX per ottenere certificati TLS da Let's Encrypt con zero dipendenze.
Scarica e installa 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 ~
Controlla la versione di Acme.sh:
/etc/letsencrypt/acme.sh --version
# v2.8.0
Ottieni RSA e ECC/ECDSA certificati per il tuo dominio/nome host:
# 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
Dopo aver eseguito i comandi precedenti, i tuoi certificati e chiavi sarà in:
- Per RSA :
/etc/letsencrypt/example.com
directory. - Per ECC/ECDSA :
/etc/letsencrypt/example.com_ecc
directory.
Passaggio 3:installa NGINX e configura NGINX per Matomo
Matomo può funzionare bene con molti popolari software per server web. In questo tutorial, abbiamo selezionato Nginx.
Scarica e installa Nginx dal repository CentOS:
sudo yum install -y nginx
Controlla la versione di Nginx:
sudo nginx -v
Avvia e abilita il servizio Nginx:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Configura Nginx per Matomo eseguendo:
sudo vim /etc/nginx/conf.d/matomo.conf
E popolare il file con la seguente configurazione:
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;
}
}
NOTA : Per la configurazione Nginx completa e pronta per la produzione per Matomo, visita https://github.com/matomo-org/matomo-nginx.
Controlla la configurazione di Nginx per errori di sintassi:
sudo nginx -t
Ricarica il servizio Nginx:
sudo systemctl reload nginx.service
Passaggio 4:installazione di Matomo Analytics
Crea /var/www
directory:
sudo mkdir -p /var/www/
Vai a /var/www
directory:
cd /var/www/
Scarica l'ultima versione di Matomo tramite wget e decomprimilo:
sudo wget https://builds.matomo.org/matomo.zip && sudo unzip matomo.zip
Rimuovi matomo.zip
scaricato file:
sudo rm matomo.zip
Modifica la proprietà del /var/www/matomo
directory in nginx
utente:
sudo chown -R nginx:nginx /var/www/matomo
Esegui sudo vim /etc/php-fpm.d/www.conf
e imposta utente e gruppo su nginx
. Inizialmente, verrà impostato su utente e gruppo apache
.
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Riavvia il servizio PHP-FPM.
sudo systemctl restart php-fpm.service
Passaggio 5:completa la configurazione di Matomo Analytics
Apri il tuo sito in un browser web e segui la procedura guidata di installazione web di Matomo.
Innanzitutto, dovrebbe apparire il messaggio di benvenuto di Matomo. Fai clic su "Avanti" pulsante:
Successivamente, vedrai un "Controllo del sistema" pagina. Se manca qualcosa, vedrai un avviso. Se tutto è contrassegnato da un segno di spunta verde, fai clic su "Avanti" pulsante per procedere al passaggio successivo:
Successivamente, inserisci i dettagli del database e fai clic su "Avanti" pulsante:
Se tutto è andato bene con la configurazione del database dovresti vedere " Tabelle create con successo!" messaggio:
Crea un account di superutente Matomo e fai clic su "Avanti" pulsante:
Quindi, imposta il primo sito Web che desideri monitorare e analizzare con Matomo. Successivamente, puoi aggiungere altri siti da monitorare con Matomo:
Successivamente, ti verrà fornito il codice di monitoraggio JavaScript per il tuo sito che devi aggiungere per avviare il monitoraggio.
Successivamente, dovresti vedere che l'installazione di Matomo è completata.
Congratulazioni! L'installazione di Matomo è completa.
Link
- https://matomo.org/
- https://github.com/matomo-org/matomo
- https://github.com/matomo-org/matomo-nginx