PIWIK auf dem eigenen Ubuntu Server 16.04 installieren

PIWIK ist sicherlich eines der besten Statistik-Tools, das es gibt. Im Folgenden möchte ich zeigen, wie man PIWIK auf einem Ubuntu Server 16.04 mit nginx, PHP7 und MariaDB installiert.

PIWIK ist eine sehr leistungsstarke Alternative zu Google Analytics. Es ist Open-Source, kann daher auf dem eigenen Server gehostet werden und ist deutlich besser mit dem europäischen Datenschutzrecht kompatibel als das gängige Tool des Marktführers.

Die Installation auf dem eigenen Server lohnt sich. PIWIK ist leistungshungrig, auch wächst die Datenbank schnell auf einige Gigabyte an. Ein schlanker Webserver (in unserem Fall nginx – gesprochen „engine x“) und eine an PIWIK angepasste Webserver-Konfiguration sind empfehlenswert.

Ich setze voraus, dass ihr einen Ubuntu Server aufgesetzt und mittels SSH Zugang zu diesem habt. Dann können wir auch schon starten. Zunächst updaten wir unsere Paketinformationen und installieren einige Pakete:

apt-get update && apt-get upgrade
apt-get install nginx php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-cli php-geoip mariadb-server mariadb-client git unzip

Als Nächstes starten wir PHP und unseren nginx Server:

systemctl start php7.0-fpm
systemctl start nginx

Da wir PIWIK später nur über HTTPS erreichen möchten, installieren wir uns ein Zertifikat, das gibt es zum Beispiel kostenlos von der Let‘s Encrypt Initiative. Ich gehe auf die Einrichtung nicht weiter ein, eine ausführliche Anleitung findet sich aber beispielsweise bei DigitalOcean.

Auf GitHub gibt es eine nginx Konfiguration, welche auf die Bedürfnisse von PIWIK ausgelegt ist. Daher löschen wir alle Konfigurationsdateien und holen uns unsere neue Konfiguration:

rm -r /etc/nginx/
git clone https://github.com/perusio/piwik-nginx.git /etc/nginx

Im Folgenden passen wir die nginx Konfiguration an. Genauere Hilfen gibt es dazu auf der GitHub-Page. Es ist an dieser Stelle sinnvoll einen kleinen Überblick über den Aufbau und Syntax der nginx Konfigurationsdateien zu sammeln. Dazu empfehle ich einen Blick in die nginx Dokumentation.

Wir bearbeiten dazu die Datei stats.example.com.conf im Ordner sites-available und passen insbesondere den Domainnamen an. Sofern kein IPv6 unterstützt wird, müssen entsprechende Zeilen auskommentiert werden. Außerdem ändern wir unser Document-Root:

root /var/www/piwik;

Unter /etc/nginx/app/piwik/piwik.conf tragen wir außerdem noch unsere zugelassenen Domainamen ein:

valid_referers none blocked *.meinedomain.de meinedomain.de;

Nach Bearbeiten der Konfiguration können wir diese mit nginx -t auf Fehler prüfen und dann per systemctl restart nginx unseren Server neustarten.

Als nächstes erstellen wir unseren Cache für FastCGI und weisen diesem Benutzer und Gruppe des Webservers zu:

mkdir -p /var/cache/nginx/fcgicache
chown -R www-data:www-data /var/cache/nginx/
chown -R www-data:www-data /var/cache/nginx/fcgicache

Danach aktivieren wir unsere Konfiguration, indem wir einen Symlink im Ordner sites-enabled erstellen (Dateinamen anpassen!) und auf unsere Konfigurationsdatei in sites-available zeigen lassen:

mkdir /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/analytics.meineseite.de.conf /etc/nginx/sites-enabled/

Die Konfiguration des Webservers ist nun abgeschlossen. Bevor wir PIWIK installieren, richten wir noch unseren Datenbankserver ein. Dazu führen wir folgenden Befehl aus:

mysql_secure_installation

Dieser sichert unser Server. Dazu wird zunächst ein neues root Passwort angelegt und danach sollten alle Fragen mit Ja beantwortet werden:

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

Wir loggen uns in unsere MariaDB Konsole mit mysql -u root -p ein. Danach führen wir eine Reihe von SQL-Befehlen aus:

create database piwik;
create user piwikuser@localhost;
grant all privileges on piwik.* to piwikuser@localhost;
flush privileges;
q\

Diese erzeugen uns eine neue Datenbank sowie Benutzer für unsere PIWIK Installation, setzen die benötigten Rechte und loggen uns aus der MariaDB Konsole aus.

Wir installieren als nächstes PIWIK: Dazu wechseln wir in das Verzeichnis /var/www/, laden die letzte stabile Version und entpacken diese in den Unterordner piwik. Danach ändern wir die Rechte zugunsten unseres Webservers:

cd /var/www/
wget https://github.com/piwik/piwik/archive/master.zip
unzip master.zip
mv piwik-master/ piwik/
chown -R www-data:www-data piwik/

Um weitere Abhängigkeiten zu installieren, benötigen wir den Dependency Manager composer, welchen wir lokal in unser Projektverzeichnis installieren. Haben wir das gemacht, starten wir unseren Webserver neu:

curl -sS https://getcomposer.org/installer | php
php composer.phar install –no-dev
systemctl restart nginx
systemctl restart php5-fpm

Nun können wir PIWIK im Browser installieren:

PIWIK Installation

Der Installationsprozess ist selbsterklärend. Es werden ein paar persönliche Daten benötigt und natürlich unsere zuvor angelegte Datenbank.

Ist die Installation abgeschlossen können wir testen ob PIWIK problemlos funktioniert. Haben wir ein SSL-Zertifikat eingerichtet und funktioniert auch die Verbindung über https://, sollte folgende Zeile in die Piwik Konfiguration (im Bereich [General]) aufgenommen werden, um eine verschlüsselte Verbindung zu erzwingen:

force_ssl = 1

Wenn eure Webseiten mehr als ein paar Besucher am Tag haben, solltet ihr ein Cron einrichten, der die Archivierung der angefallenen Daten organisiert. Mehr dazu in der PIWIK Dokumentation. So wird das Laden der Berichte im Browser erheblich beschleunigt.

Unter Einstellungen > Systemprüfung solltet ihr eure Installation zu guter Letzt noch auf Fehler überprüfen.

Damit sind wir fertig, die Nutzung von PIWIK kann beginnen 🙂


Über den Autor

Hallo! Ich bin Robin Cramer und entwickle Webseiten. Was wäre das Internet ohne gegenseitige Hilfe? Aus diesem Grund veröffentliche auch ich in unregelmäßigen Abständen zu allem was mit der Entwicklung von Webseiten zu tun hat.
Webseite

Hinterlassen Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht.