GNU/Linux >> Linux Esercitazione >  >> Ubuntu

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

Questo tutorial ti mostrerà come installare l'analisi web Matomo (precedentemente nota come Piwik) su Ubuntu 18.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?

I software di analisi web vengono utilizzati 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 le tue 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, sistema operativo, quota di mercato del 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.
  • 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 la frequenza 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 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 18.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 di Whois gratuita per tutta la vita. Un server con 512 MB 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 18.04. In caso contrario, dai un'occhiata a uno dei seguenti tutorial:

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

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

Passaggio 1:scarica Matomo su Ubuntu 18.04

Accedi al tuo server tramite SSH. Puoi sempre utilizzare il seguente comando per scaricare l'ultima versione di Matomo sul tuo server. Al momento in cui scrivo, l'ultima versione è Matomo 3.7, che viene fornita con una nuova funzionalità:tag manager. È una delle più grandi pietre miliari per Matomo negli ultimi anni.

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

Una volta scaricato, estrai l'archivio con unzip .

sudo apt install unzip

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 (Nginx) 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. Dal momento che MariaDB ora sta usando unix_socket plug-in per l'autenticazione dell'accesso utente, non è necessario inserire la password di root di MariaDB. Dobbiamo solo anteporre mysql comando con sudo .

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 identified by 'your-password';

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 il testo di colore rosso con i tuoi dati effettivi. Non dimenticare di impostare un record A per il nome di dominio.

<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 il testo di colore rosso con i tuoi dati effettivi. Non dimenticare di impostare un record A per il nome di dominio.

server {
    listen [::]:80; # remove this if you don't want Matomo to be reachable from IPv6
    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.2-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.2-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.2-mysql php7.2-fpm php7.2-common php7.2-gd php7.2-json php7.2-curl  php7.2-zip php7.2-xml php7.2-mbstring php7.2-bz2 php7.2-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 18.04.

sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
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.

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 18.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 18.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, fai clic sull'icona a forma di ingranaggio (Amministrazione) in Matomo, vai su System -> Geolocation . Quindi scarica l'ultimo database Maxmind GeoIP sul tuo server.

wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz

Estrai il tarball.

tar xvf GeoLite2-City.tar.gz

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

sudo mv GeoLite2-City_20190226/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.

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 18.04 con Apache o Nginx. Come sempre, se hai trovato utile questo post, iscriviti alla nostra newsletter gratuita per ricevere altri 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 20.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