Wie man Matomo Web Analytics mit Nginx unter FreeBSD 12.0 installiert

Matomo (ehemals Piwik) ist eine kostenlose und quelloffene Webanalyse-Anwendung, die von einem internationalen Entwicklerteam entwickelt wurde und auf einem PHP/MySQL-Webserver läuft. Es verfolgt die Online-Besuche einer oder mehrerer Websites und zeigt Berichte über diese Besuche zur Analyse an. Sie können es als eine Alternative zu Google Analytics betrachten. Matomo ist ein Open-Source-Produkt, dessen Code auf Github öffentlich zugänglich ist. Einige der Funktionen sind: A/B-Tests, Heatmaps, Trichter, Tracking and Reporting API, Google AdWords, Facebook-Anzeigen, Bing-Anzeigen, Cost Per Click (CPC), usw. Dieses Tutorial zeigt Ihnen, wie Sie Matomo auf einem FreeBSD 12.0-System mit Nginx als Webserver installieren und wir werden die Website mit einem Let’s Encrypt SSL-Zertifikat sichern.

Anforderungen

Um Matomo (Piwik) auf Ihrem FreeBSD 12.0-System laufen zu lassen, benötigen Sie einige Dinge:

  • Ein Webserver wie Apache, Nginx, IIS.
  • PHP Version 5.5.9 oder höher mit den Erweiterungen pdo und pdo_mysql oder mysqli, gd, xml, curl und mbsting. PHP 7+ wird empfohlen.
  • MySQL Version 5.5 oder höher oder die entsprechende MariaDB-Version. MySQL 5.7+ wird empfohlen.

Voraussetzungen

  • Ein Betriebssystem, auf dem FreeBSD 12.0 läuft.
  • Ein Nicht-Root-Benutzer mit Sudo-Berechtigungen.

Erste Schritte

Überprüfen Sie Ihre FreeBSD-Version:

uname -ro
# FreeBSD 12.0-RELEASE

Richten Sie die Zeitzone ein:

tzsetup

Aktualisieren Sie Ihre Betriebssystempakete (Software). Dies ist ein wichtiger erster Schritt, da er sicherstellt, dass Sie über die neuesten Updates und Sicherheitsfixes für die Standardsoftwarepakete Ihres Betriebssystems verfügen:

freebsd-update fetch install
pkg update && pkg upgrade -y

Installieren Sie einige wichtige Pakete, die für die grundlegende Verwaltung des Betriebssystems FreeBSD 12.0 notwendig sind:

pkg install -y sudo vim unzip wget bash

Schritt 1 – Installieren Sie MySQL und erstellen Sie eine Datenbank für Matomo

Matomo unterstützt die Datenbanken MySQL und MariaDB. In diesem Tutorial werden wir MySQL als Datenbankserver verwenden.

Installieren Sie den MySQL-Datenbankserver:

sudo pkg install -y mysql57-server

Prüfen Sie die MySQL-Version:

mysql --version
# mysql  Ver 14.14 Distrib 5.7.26, for FreeBSD12.0 (amd64) using  EditLine wrapper

Aktivieren und starten Sie den MySQL-Dienst:

sudo sysrc mysql_enable="yes"
sudo service mysql-server start

Führen Sie aus. mysql_secure installation Skript, um die Sicherheit von MySQL zu verbessern und das Passwort für MySQL festzulegen root Benutzer:

sudo mysql_secure_installation

Beantworten Sie jede der Fragen:

Would you like to setup VALIDATE PASSWORD plugin? N
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

Verbinden Sie sich als Root-Benutzer mit der MySQL-Shell:

sudo mysql -u root -p
# Enter password

Erstellen Sie eine leere MySQL-Datenbank und einen leeren Benutzer für Matomo und merken Sie sich die Anmeldedaten:

CREATE DATABASE dbname;
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Beenden von MySQL:

exit

Ersetzen dbnameSie , usernameund passwordmit Ihren eigenen Namen.

Schritt 2 – PHP und notwendige PHP-Erweiterungen installieren

Installieren Sie PHP, sowie die notwendigen PHP-Erweiterungen:

sudo pkg install -y php73 php73-ctype php73-curl php73-dom php73-hash php73-iconv php73-gd php73-json php73-mbstring php73-openssl php73-session php73-simplexml php73-xml php73-zip php73-zlib php73-pdo php73-pdo_mysql php73-mysqli php73-filter php73-ftp php73-tokenizer php73-calendar php73-pecl-APCu php73-opcache

Prüfen Sie die PHP-Version:

php --version

 

# PHP 7.3.7 (cli) (built: Jul 25 2019 01:28:53) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.7, Copyright (c) 1999-2018, by Zend Technologies

Aktivieren und starten Sie den PHP-FPM-Dienst:

sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Wir können zum nächsten Schritt übergehen, der darin besteht, kostenlose SSL-Zertifikate von Let’s Encrypt CA zu erhalten.

Schritt 3 – Client installieren acme.shund Let’s Encrypt-Zertifikat erhalten (optional)

Die Sicherung Ihrer Website mit HTTPS ist nicht notwendig, aber es ist eine gute Praxis, um den Verkehr Ihrer Website zu sichern. Um das TLS-Zertifikat von Let’s Encrypt zu erhalten, werden wir den Acme.sh-Client verwenden. Acme.sh ist eine reine UNIX-Shell-Software, um TLS-Zertifikate von Let’s Encrypt ohne Abhängigkeiten zu erhalten.

Laden Sie Acme.sh herunter und installieren Sie es:

sudo pkg install -y acme.sh

Prüfen Sie die Version von Acme.sh:

acme.sh --version
# v2.8.2

Erhalten Sie RSA- und ECC/ECDSA-Zertifikate für Ihre Domain/Hostnamen:

# RSA
sudo acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength 2048
# ECDSA
sudo acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength ec-256

Nachdem Sie die oben genannten Befehle ausgeführt haben, wird Ihr Zertifikate und Schlüssel wird in sein:

  • Für RSA: /etc/letsencrypt/example.comVerzeichnis.
  • Für ECC/ECDSA: /etc/letsencrypt/example.com_eccVerzeichnis.

Schritt 3 – Installieren Sie NGINX und konfigurieren Sie NGINX für Matomo

Matomo kann gut mit vielen gängigen Webserver-Programmen zusammenarbeiten. In diesem Tutorial haben wir Nginx ausgewählt.

Laden Sie die neueste Hauptversion von Nginx aus dem FreeBSD-Repository herunter und installieren Sie sie:

sudo pkg install -y nginx-devel

Prüfen Sie die Nginx-Version:

nginx -v
# nginx version: nginx/1.17.2

Aktivieren und starten Sie Nginx:

sudo sysrc nginx_enable=yes
sudo service nginx start

Konfigurieren Sie Nginx für Matomo, indem Sie es ausführen:

sudo vim /usr/local/etc/nginx/matomo.conf

Und füllen Sie die Datei mit der folgenden Konfiguration:

server {
  
  listen [::]:443 ssl;
  listen 443 ssl;
  listen [::]:80;
  listen 80;
  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;
  server_name example.com;
  
  root /usr/local/www/matomo;
  
  index index.php;
  
  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;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    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;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    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 ~ /\.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;
    expires 1h;
    add_header Pragma public;
    add_header Cache-Control "public";
  }
  
  location ~ /(libs|vendor|plugins|misc/user) {
    deny all;
    return 403;
  }
  
  location ~/(.*\.md|LEGALNOTICE|LICENSE) {
    default_type text/plain;
  }
  
}

HINWEIS: Eine vollständige und produktionsbereite Nginx-Konfiguration für Matomo finden Sie unter https://github.com/matomo-org/matomo-nginx.

Führen sudo vim /usr/local/etc/nginx/nginx.confSie die unten stehende Zeile aus und fügen Sie sie hinzu, um die Matomo-Konfiguration zu http {}blockieren.

include matomo.conf;

Überprüfen Sie die Nginx-Konfiguration auf Syntaxfehler:

sudo nginx -t

Nginx-Dienst neu laden:

sudo service nginx reload

Schritt 4 – Installieren Sie Matomo Analytics

Navigieren Sie zum Verzeichnis/usr/local/www:

cd /usr/local/www/

Laden Sie die neueste Version von Matomo über herunter undwget entpacken Sie sie:

sudo wget https://builds.matomo.org/matomo.zip && sudo unzip matomo.zip

Heruntergeladene Datei matomo.zipentfernen:

sudo rm matomo.zip

Eigentümer des Verzeichnisses auf /usr/local/www/matomowww Benutzer ändern :

sudo chown -R www:www /usr/local/www/matomo

Schritt 5 – Vervollständigen Sie die Einrichtung der Matomo-Analytik

Öffnen Sie Ihre Website in einem Webbrowser und folgen Sie dem Matomo Webinstallations-Assistenten.

Zunächst sollte die Matomo-Begrüßungsnachricht erscheinen. Klicken Sie auf die Schaltfläche „Weiter“:

Matomo-Installationsassistent

Danach sehen Sie eine Seite „System Check“. Wenn etwas fehlt, sehen Sie eine Warnung. Wenn alles mit einem grünen Häkchen markiert ist, klicken Sie auf die Schaltfläche „Weiter„, um zum nächsten Schritt zu gelangen:

System prüfen

Füllen Sie als nächstes die Datenbankdetails aus und klicken Sie auf die„Nächster“ Schaltfläche:

Einrichtung der Datenbank

Wenn alles mit der Einrichtung der Datenbank gut gelaufen ist, sollten Sie die Meldung Tabellen erfolgreich erstellt!

Erstellen von Datenbanktabellen

Erstellen Sie ein Matomo-Super-Benutzerkonto und klicken Sie auf die „Nächster“ Schaltfläche:

Super-Benutzerkonto erstellen

Als nächstes richten Sie die erste Website ein, die Sie mit Matomo verfolgen und analysieren möchten. Später können Sie mit Matomo weitere Websites zur Verfolgung hinzufügen:

Website zu Matomo hinzufügen

Als Nächstes erhalten Sie den JavaScript-Tracking-Code für Ihre Website, den Sie hinzufügen müssen, um das Tracking zu starten.

Javascript-Verfolgungscode

Als nächstes sollten Sie sehen, dass die Matomo-Installation abgeschlossen ist.

Matomo-Installation abgeschlossen

Herzlichen Glückwunsch! Ihre Matomo-Installation ist abgeschlossen.

Das könnte Dich auch interessieren …