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 dbname
Sie , username
und password
mit 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.sh
und 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.com
Verzeichnis. - Für ECC/ECDSA:
/etc/letsencrypt/example.com_ecc
Verzeichnis.
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.conf
Sie 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.zip
entfernen:
sudo rm matomo.zip
Eigentümer des Verzeichnisses auf /usr/local/www/matomo
www
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“:
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:
Füllen Sie als nächstes die Datenbankdetails aus und klicken Sie auf die„Nächster“ Schaltfläche:
Wenn alles mit der Einrichtung der Datenbank gut gelaufen ist, sollten Sie die Meldung „Tabellen erfolgreich erstellt!
Erstellen Sie ein Matomo-Super-Benutzerkonto und klicken Sie auf die „Nächster“ Schaltfläche:
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:
Als Nächstes erhalten Sie den JavaScript-Tracking-Code für Ihre Website, den Sie hinzufügen müssen, um das Tracking zu starten.
Als nächstes sollten Sie sehen, dass die Matomo-Installation abgeschlossen ist.
Herzlichen Glückwunsch! Ihre Matomo-Installation ist abgeschlossen.