GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Installa Matomo Web Analytics (Piwik) su Ubuntu 20.04 con Apache/Nginx

Questo tutorial ti mostrerà come installare Matomo web analytics (precedentemente noto come Piwik) su Ubuntu 20.04 con server Web Apache o Nginx. Matomo è un'alternativa open source a Google Analytics , che è il software di analisi web più utilizzato.

Cos'è Web Analytics?

Il software di analisi web viene utilizzato dai siti Web per sapere quanti visitatori si trovano su un sito in un giorno/settimana/mese, quale browser Web stanno utilizzando, ecc. È un software fondamentale per far crescere i loro siti Web. Google Analytics è ottimo, ma i dati dei visitatori del sito Web sono archiviati sul server di Google. Se non desideri condividere i dati dei visitatori del tuo sito web con terze parti, puoi eseguire il tuo software di analisi web. Sono molte alternative auto-ospitate a Google Analytics e Matomo è eccezionale.

Caratteristiche Matomo

L'edizione Matomo self-hosted open source (con licenza GPL v3+) può mostrare i seguenti rapporti.

  • Principali parole chiave e motori di ricerca, siti Web, siti Web di social media.
  • URL delle pagine principali, titoli delle pagine, paesi degli utenti, provider, sistemi operativi, quota di mercato dei browser, risoluzione dello schermo, desktop e dispositivi mobili.
  • Coinvolgimento (tempo sul sito, pagine per visita, visite ripetute).
  • Campagne principali, variabili personalizzate, pagine di ingresso/uscita principali, file scaricati e molti altri.
  • Classificato in quattro categorie principali di rapporti di analisi:Visitatori, Azioni, Referrer, Obiettivi/E-commerce (oltre 30 rapporti).
  • Rapporti e-mail di statistica.
  • Analisi del registro del server Web.
  • Traccia i visitatori che hanno disabilitato JavaScript.
  • Strumenti per conformarsi al GDPR (come il consenso ai cookie)
  • Installa plug-in gratuiti o premium per estendere ed espandere le funzionalità di Matomo.
  • Un programma di aggiornamento basato sul Web facile da usare. È disponibile anche un programma di aggiornamento della riga di comando.
  • E altro ancora.

Per un elenco completo delle funzionalità, controlla la pagina delle funzionalità di Matomo. Mi piace particolarmente il fatto che Matomo possa elencare tutte le mie pagine Web in base alle visualizzazioni di pagina e mostrare la frequenza di rimbalzo e di uscita per ciascuna pagina Web e anche la mappa dei visitatori in tempo reale.

Mappa dei visitatori in tempo reale di Matomo

Vantaggi Matomo self-hosted

  • Pieno controllo dei dati. I dati vengono memorizzati solo sul tuo server e puoi scegliere in quale paese si trova il server.
  • Nessun limite di dati. Puoi conservare tutti i dati che può contenere il tuo server.
  • Completamente personalizzabile ed estensibile.
  • Firefox ha iniziato a bloccare i cookie di monitoraggio tra siti, inclusa Google Analytics. Ospitando il software di analisi con il tuo nome di dominio, i tuoi cookie di tracciamento non verranno bloccati.

Il Matomo ospitato nel cloud ha funzionalità extra, ma puoi installare un plug-in premium sulla tua istanza self-hosted per ottenere la stessa funzionalità.

Prerequisiti per l'installazione di Matomo Web Analytics (Piwik) su Ubuntu 20.04

Per seguire questo tutorial, avrai bisogno di un nome di dominio e di un server. Ho registrato il mio nome di dominio su NameCheap perché il prezzo è basso e offrono protezione della privacy a Whois gratuita per tutta la vita. Un server con 1G di RAM è sufficiente per eseguire Matomo ed ecco i provider di hosting che consiglio. Li ho usati tutti.

  • Vultr (a partire da $ 2,5 al mese. Carta di credito richiesta)
  • DigitalOcean (a partire da $ 5/mese. Non è richiesta la carta di credito. Puoi usare Paypal).

Una volta che hai un server, installa Ubuntu su di esso e segui le istruzioni seguenti.

Matomo è scritto in PHP e utilizza il database MySQL/MariaDB. Per seguire questo tutorial, si presume che tu abbia già impostato lo stack LAMP o LEMP su Ubuntu 20.04. In caso contrario, dai un'occhiata a uno dei seguenti tutorial:

  • Come installare lo stack LAMP sul server Ubuntu 20.04
  • Come installare lo stack LEMP sul server Ubuntu 20.04

Quando hai finito di configurare lo stack LAMP o LEMP, torna qui e continua a leggere.

Passaggio 1:scarica Matomo su Ubuntu 20.04

Accedi al tuo server tramite SSH. Puoi sempre utilizzare il seguente comando per scaricare l'ultima versione di Matomo sul tuo server.

wget https://builds.matomo.org/matomo-latest.zip

Una volta scaricato, estrai l'archivio con unzip .

sudo apt install unzip

sudo mkdir -p /var/www/

sudo unzip matomo-latest.zip -d /var/www/

Il -d opzione specifica la directory di destinazione. I file Web Matomo verranno estratti in /var/www/matomo/ . Quindi dobbiamo cambiare il proprietario di questa directory in www-data in modo che il server web possa scrivere in questa directory.

sudo chown www-data:www-data /var/www/matomo/ -R

Fase 2:crea un database e un utente in MariaDB

Accedi al server del database MariaDB con il seguente comando.

sudo mysql

In alternativa, puoi anche usare questo comando per accedere.

sudo mariadb

Quindi crea un database per Matomo. Questo tutorial nomina il database matomo . Puoi usare il nome che preferisci.

create database matomo;

Crea l'utente del database. Anche in questo caso, puoi utilizzare il tuo nome preferito per questo utente. Sostituisci your-password con la tua password preferita.

create user matomouser@localhost identified by 'your-password';

Concedi a questo utente tutti i privilegi su matomo banca dati.

grant all privileges on matomo.* to matomouser@localhost;

Elimina i privilegi ed esci.

flush privileges;

exit;

Fase 3:crea un file di configurazione Apache o Nginx

Apache

Se preferisci utilizzare il server Web Apache, crea un file di configurazione dell'host virtuale in /etc/apache2/sites-available/ directory.

sudo nano /etc/apache2/sites-available/matomo.conf

Inserisci il seguente testo nel file. Sostituisci analytics.example.com con il tuo nome di dominio. Non dimenticare di impostare un record per il nome di dominio nel tuo gestore DNS.

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName analytics.example.com
        DocumentRoot /var/www/matomo/

        <Directory /var/www/matomo>
           DirectoryIndex index.php
           Options FollowSymLinks
           AllowOverride All
           Require all granted
        </Directory>

        <Files "console">
           Options None
           Require all denied
        </Files>

        <Directory /var/www/matomo/misc/user>
           Options None
           Require all granted
        </Directory>

        <Directory /var/www/matomo/misc>
           Options None
           Require all denied
        </Directory>

        <Directory /var/www/matomo/vendor>
           Options None
           Require all denied
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/matomo_error.log
        CustomLog ${APACHE_LOG_DIR}/matomo_access.log combined

</VirtualHost>

Salva e chiudi il file. Quindi abilita questo host virtuale.

sudo a2ensite matomo.conf

Ricarica il server web Apache per rendere effettive le modifiche.

sudo systemctl reload apache2

Nginx

Se preferisci utilizzare il server web Nginx, crea un matomo.conf file in /etc/nginx/conf.d/ directory.

sudo nano /etc/nginx/conf.d/matomo.conf

Inserisci il seguente testo nel file. Sostituisci analytics.example.com con il tuo nome di dominio. Non dimenticare di impostare un record per il nome di dominio nel tuo gestore DNS.

server {
    listen [::]:80;
    listen 80;
    server_name analytics.example.com;

    access_log /var/log/nginx/matomo.access.log;
    error_log /var/log/nginx/matomo.error.log;

    root /var/www/matomo/; 
    
    index index.php;
        
    ## only allow accessing the following php files
    location ~ ^/(index|matomo|piwik|js/index).php {
        include snippets/fastcgi-php.conf;
        fastcgi_param HTTP_PROXY ""; # prohibit httpoxy: https://httpoxy.org/
        fastcgi_pass unix:/run/php/php7.4-fpm.sock; 
    }
    
    ## needed for HeatmapSessionRecording plugin
    location = /plugins/HeatmapSessionRecording/configs.php { 
        include snippets/fastcgi-php.conf;
        fastcgi_param HTTP_PROXY "";
        fastcgi_pass unix:/run/php/php7.4-fpm.sock; 
    }
    
    ## deny access to all other .php files
    location ~* ^.+\.php$ {
        deny all;
        return 403;
    }

    ## serve all other files normally 
    location / {
        try_files $uri $uri/ =404;
    }
    
    ## disable all access to the following directories 
    location ~ /(config|tmp|core|lang) {
        deny all;
        return 403; # replace with 404 to not show these directories exist
    }
    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;
        ## Cache images,CSS,JS and webfonts for an hour
        ## Increasing the duration may improve the load-time, but may cause old files to show after an Matomo upgrade
        expires 1h;
        add_header Pragma public;
        add_header Cache-Control "public";
    }

    location ~ /(libs|vendor|plugins|misc/user) {
        deny all;
        return 403;
    }

    ## properly display textfiles in root directory
    location ~/(.*\.md|LEGALNOTICE|LICENSE) {
        default_type text/plain;
    }
}

Salva e chiudi il file. Testare la configurazione di Nginx, quindi ricaricare Nginx per rendere effettive le modifiche.

sudo nginx -t

sudo systemctl reload nginx

Fase 4:installa e abilita i moduli PHP

Esegui i seguenti comandi per installare i moduli PHP richiesti o consigliati da Matomo.

sudo apt install php-imagick php7.4-mysql php7.4-fpm php7.4-common php7.4-gd php7.4-json php7.4-curl  php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl

Se stai usando il server web Apache, devi ricaricarlo per farlo funzionare con questi moduli PHP.

sudo systemctl reload apache2

Gli utenti di Nginx non hanno bisogno di ricaricare.

Ora dovresti essere in grado di visitare la procedura guidata di installazione basata sul Web di Matomo all'indirizzo http://analytics.example.com , ma prima di inserire qualsiasi informazione, abilitiamo HTTPS.

Passaggio 5:abilita HTTPS

Per crittografare il traffico HTTP quando visiti l'interfaccia web di Matomo, possiamo abilitare HTTPS installando un certificato TLS gratuito emesso da Let's Encrypt. Esegui i seguenti comandi per installare il client Let's Encrypt (certbot) su Ubuntu 20.04.

sudo apt update
sudo apt install certbot

Se usi Nginx, devi anche installare il plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Quindi esegui il comando seguente per ottenere e installare il certificato TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d analytics.example.com

Se usi Apache, devi anche installare il plugin Certbot Apache.

sudo apt install python3-certbot-apache

Quindi esegui questo comando per ottenere e installare il certificato TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d analytics.example.com

Spiegazione:

  • --nginx :usa il plugin nginx.
  • --apache :usa il plugin Apache.
  • --agree-tos :Accetta i termini di servizio.
  • --redirect :Forza HTTPS tramite reindirizzamento 301.
  • --hsts :aggiungi l'intestazione Strict-Transport-Security a ogni risposta HTTP. Forzare il browser a utilizzare sempre TLS per il dominio. Difende dallo stripping SSL/TLS.
  • --staple-ocsp :Abilita la pinzatura OCSP. Una risposta OCSP valida viene pinzata al certificato offerto dal server durante TLS.

Il certificato dovrebbe ora essere ottenuto e installato automaticamente.

Fase 6:Completa l'installazione nel tuo browser web

Vai a https://analytics.example.com per avviare la procedura guidata di installazione basata sul Web. Quindi fai clic su Next pulsante.

Verificherà se il tuo sistema soddisfa i requisiti come le estensioni PHP. Se tutti i requisiti sono soddisfatti, fai clic su Next .

Nel passaggio successivo, inserisci il nome utente, la password e il nome del database MariaDB che hai creato in precedenza. Puoi utilizzare il valore predefinito in altri campi.

Dopo aver fatto clic su Avanti, la procedura guidata di installazione creerà automaticamente alcune tabelle nel database. Fare clic su Next per continuare.

Nella schermata successiva, crea un utente amministratore per l'interfaccia web Matomo.

Dopo aver creato l'utente amministratore, devi aggiungere un sito Web per raccogliere dati analitici.

Quindi devi aggiungere il codice di monitoraggio JavaScript al tuo sito web.

Una volta fatto. Fare clic sul pulsante Avanti e l'installazione di Matomo è completa. Ora puoi accedere alla dashboard di Matomo e visualizzare i dati dei visitatori.

Traccia gli utenti con JavaScript disabilitato

Nell'interfaccia web di Matomo, fai clic sull'icona a forma di ingranaggio nell'angolo in alto a destra, quindi vai a siti web -> codice di monitoraggio e puoi scegliere di monitorare gli utenti con JavaScript disabilitato.

Ci sarà un nuovo codice di tracciamento. Devi sostituire il codice di monitoraggio esistente con quello nuovo. In realtà, il nuovo codice di monitoraggio aggiunge semplicemente la riga seguente al codice di monitoraggio esistente.

<noscript><p><img src="//analytics.example.com/matomo.php?idsite=1&amp;rec=1" border:0;" alt="" /></p></noscript>

Quando un visitatore ha disabilitato JavaScript, o quando JavaScript non può essere utilizzato, il browser del visitatore scaricherà un'immagine.

Imposta lavori Cron per siti Web a traffico medio e alto

Se il tuo sito Web ha migliaia di visualizzazioni di pagina al giorno, è necessario impostare un cron job per archiviare automaticamente i report Matomo. Crea il file di lavoro Cron con il seguente comando.

sudo nano /etc/cron.d/matomo-archive

Quindi aggiungi le seguenti righe al file.

MAILTO="[email protected]"
5 * * * * www-data /usr/bin/php /var/www/matomo/console core:archive --url=https://analytics.example.com > /dev/null

L'output standard verrà inviato a /dev/null e l'errore standard verrà inviato al tuo indirizzo e-mail. Salva e chiudi il file. Questo processo Cron verrà eseguito ogni ora dopo 5 minuti.

Come impostare la notifica e-mail

Se sono presenti più utenti, è una buona idea consentire a Matomo di inviare notifiche e-mail come e-mail di reimpostazione della password. Per come configurare un server di posta elettronica, dai un'occhiata al seguente tutorial. Nota che consiglio vivamente di eseguire il server di posta iRedMail su un nuovo sistema operativo pulito. L'installazione di iRedMail su un sistema operativo che dispone di altre applicazioni Web può non riuscire e probabilmente interrompere le applicazioni esistenti.

  • Come configurare facilmente un server di posta completo su Ubuntu 20.04 con iRedMail

Se non desideri eseguire il tuo server di posta elettronica, puoi invece configurare l'inoltro SMTP. Si prega di consultare il seguente tutorial.

  • Come configurare l'inoltro SMTP di Postfix sul server Ubuntu 20.04

Come impostare una geolocalizzazione accurata con GeoIP

Per impostazione predefinita, Matomo indovina la posizione dei visitatori in base alla lingua che usano. Questo non è accurato. Ad esempio, molti visitatori non statunitensi scelgono En-US come lingua predefinita per il proprio sistema operativo, quindi ci saranno più "visitatori statunitensi" nel rapporto Matomo. Per ottenere una migliore geolocalizzazione, possiamo utilizzare il database IP gratuito MaxMind GeoLite2.

Innanzitutto, devi creare un account su MaxMind. Maxmind ti invierà un'e-mail. Fare clic sul collegamento nell'e-mail per impostare una password, quindi accedere al proprio account MaxMind. Quindi, seleziona My License Key sulla barra di sinistra.

Fai clic su Genera nuova chiave di licenza pulsante.

Assegna un nome alla tua chiave di licenza e scegli "No ” per “Questa chiave verrà utilizzata per l'aggiornamento GeoIP?” Quindi fai clic su Confirm pulsante. Verrà mostrata la tua chiave di licenza. Tieni presente che la chiave di licenza verrà mostrata solo una volta, quindi copiala negli appunti.

Quindi, fai clic sull'icona a forma di ingranaggio (Amministrazione) nell'interfaccia web di Matomo, vai su System -> Geolocation . Quindi scarica l'ultimo database Maxmind GeoIP sul tuo server. Sostituisci la tua_license_key con la tua vera chiave di licenza.

wget -O GeoLite2-City.tar.gz 'https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&suffix=tar.gz&license_key=your_license_key'

Estrai il tarball.

tar xvf GeoLite2-City.tar.gz

Il tarball verrà estratto in una directory denominata in questo modo GeoLite2-City_20200814 . Quindi sposta il file GeoLite2-City.mmdb in /var/www/matomo/misc/ directory.

sudo mv GeoLite2-City_20200814/GeoLite2-City.mmdb /var/www/matomo/misc/

Ora ricarica la pagina delle impostazioni di geolocalizzazione di Matomo. Scegli il secondo provider di localizzazione:GeoIP 2 (Php) .

Fare clic sul pulsante Salva per salvare le impostazioni. Nella parte inferiore di questa pagina, puoi anche inserire l'URL di download in modo che Matomo possa aggiornare automaticamente il database GeoIP.

  • L'URL di download di MaxMind è:https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&suffix=tar.gz&license_key=your_license_key
  • Aggiorna il database ogni settimana.

Eseguire Matomo dietro Cloudflare CDN

Se Matomo è in esecuzione dietro Cloudflare CDN, Matomo può vedere solo l'indirizzo IP dei server Cloudflare. Per mostrare l'indirizzo IP reale dei visitatori in Nginx, modifica il file di configurazione principale di Nginx.

sudo nano /etc/nginx/nginx.conf

Aggiungi le seguenti direttive in http sezione.

set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;

# use any of the following two
real_ip_header CF-Connecting-IP;
#real_ip_header X-Forwarded-For;

set_real_ip_from definisce indirizzi attendibili, in questo caso indirizzi IP Cloudflare, noti per inviare indirizzi sostitutivi corretti. Salva e chiudi il file. Quindi ricarica Nginx per rendere effettive le modifiche.

sudo systemctl reload nginx

Puoi controllare gli indirizzi IP dei visitatori nella Dashboard di Matomo -> Visitatori -> Registro visite .

Potresti anche voler controllare gli attuali intervalli IP di Cloudflare.

Altre cose da fare

  • Iscriviti al feed RSS del registro delle modifiche di Matomo per essere avvisato quando esce una nuova versione.
  • Consulta i suggerimenti per la sicurezza di Matomo.
  • Leggi i suggerimenti per l'ottimizzazione delle prestazioni di Matomo.

Questo è tutto! Spero che questo tutorial ti abbia aiutato a installare Matomo sul server Ubuntu 20.04 con Apache o Nginx. Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita per ricevere ulteriori suggerimenti e trucchi. Abbi cura di 🙂


Ubuntu
  1. Come installare Nginx Web Server su Ubuntu 18.04

  2. Come installare Jenkins Automation Server con Apache su Ubuntu 16.04

  3. Installa il server web Apache su Ubuntu 12.10

  4. Come installare Matomo Web Analytics su Ubuntu 20.04

  5. Installa phpMyAdmin su Ubuntu 20.04 con Nginx

Installa Matomo Web Analytics (Piwik) su Ubuntu 18.04 con Apache/Nginx

Come installare InvoiceNinja su Ubuntu 20.04 Server con Apache/Nginx

Comandi per installare il server Web Apache su Ubuntu 22.04 o 20.04 LTS

Come installare Apache Web Server su Ubuntu 18.04

Come installare Nginx Web Server su Ubuntu 20.04

Come installare Apache Web Server su Ubuntu 20.04