Piwik ist eine freie Alternative zu Google Analytics und anderen Diensten, welche Statistiken über die Besucher von Websiten erstellen. In diesem Beitrag beschreibe ich wie Piwik unter Ubuntu Linux 16.04 Server mit nginx und MariaDB/MySQL installiert und konfiguriert werden kann.
Vorbereitung
nginx / Letsencrypt
Wie nginx unter Ubuntu Linux 16.04 mit PHP und MariaDB/MySQL installiert und konfiguriert werden kann habe ich im Beitrag nginx unter Ubuntu Linux 16.04 Server mit sicherer SSL Konfiguration, PHP und MariaDB oder MySQL installieren und konfigurieren beschrieben. Sobald nginx eingerichtet ist muss zuerst muss ein Verzeichnis für die Piwik Dateien angelegt werden, welches auch von nginx referenziert wird.
$ sudo mkdir -p /var/www/com.example.analytics
Jetzt sollte eine neue nginx Basiskonfiguration für Piwik unter /etc/nginx/sites/available/com.example.analytics angelegt werden, mit welcher das letsencrypt Zertifikat angefragt werden kann.
server { listen 80; listen [xxx:xxx:xxx::42]:80; server_name analytics.example.com; root /var/www/com.example.analytics; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ /index.php?$args; } # snippet for updating letsencrypt certificates include snippets/certbot-webroot.conf; }
Diese Konfiguration muss nun aktiviert werden.
$ sudo ln -s /etc/nginx/sites-available/com.example.analytics /etc/nginx/sites-enabled/
Bevor die neue Konfiguration geladen wird sollte geprüft werden, dass sie Fehlerfrei ist.
$ sudo /etc/init.d/nginx configtest
* Testing nginx configuration [ OK ]
Anschließend kann sie geladen werden.
$ sudo /etc/init.d/nginx reload
[ ok ] Reloading nginx configuration (via systemctl): nginx.service.
Jetzt kann wie im Beitrag Let’s Encrypt SSL Zertifikate unter Ubuntu Linux 16.04 Server mittels nginx und webroot Plugin beziehen beschrieben ein Letsencrypt Zertifikat für diese Website angefragt werden.
Nachdem das Zertifikat erfolgreich angefragt wurde kann die Konfiguration auf die nachfolgende vollständige Konfiguration geändert werden.
server { listen 80; listen [xxxx:xxxx:xxxx:xxxx::42]:80; server_name analytics.example.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; listen [xxxx:xxxx:xxxx:xxxx::42]:443 ssl; server_name analytics.example.com; ssl_certificate /etc/letsencrypt/live/analytics.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/analytics.example.com/privkey.pem; add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; "; root /var/www/com.example.analytics; index index.php; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } # pass the PHP scripts to FastCGI server location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } }
Bevor die neue Konfiguration geladen wird sollte wieder geprüft werden, dass sie Fehlerfrei ist.
$ sudo /etc/init.d/nginx configtest
* Testing nginx configuration [ OK ]
Anschließend kann sie geladen werden
$ sudo /etc/init.d/nginx reload
[ ok ] Reloading nginx configuration (via systemctl): nginx.service.
MariaDB / MySQL
Wie MariaDB bzw. MySQL unter Ubuntu 16.04 installiert und konfiguriert werden kann habe ich in Beitrag MySQL oder MariaDB unter Ubuntu Linux 16.04 installieren und konfigurieren beschrieben. Für Piwik sollte eine eigene Datenbank mit Benutzer angelegt werden. Wie dies über das Terminal erledigt werden kann habe ich im Beitrag MySQL oder MariaDB Datenbank über das Terminal erstellen beschrieben.
Piwik
Piwik kann von der offiziellen Homepage heruntergeladen werden. Zuvor sollte in das Webverzeichnis der Installation gewechselt werden.
$ cd /var/www/com.example.analytics
$ wget https://builds.piwik.org/piwik.zip
--2017-06-01 20:16:41-- https://builds.piwik.org/piwik.zip
Resolving builds.piwik.org (builds.piwik.org)... 185.31.40.177
Connecting to builds.piwik.org (builds.piwik.org)|185.31.40.177|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 18037778 (17M) [application/zip]
Saving to: ‘piwik.zip’
piwik.zip 100%[======================>] 17.20M 6.35MB/s in 2.7s
2017-06-01 20:16:44 (6.35 MB/s) - ‘piwik.zip’ saved [18037778/18037778]
Nun können die Dateien entpackt, an ihren richtigen Platz verschoben, aufgeräumt sowie die Rechte angepasst werden.
$ unzip piwik.zip $ rm How\ to\ install\ Piwik.html piwik.zip $ mv piwik/* ./ $ rm piwik -R $ chown -R www-data:www-data *
PHP Pakete
Piwik benötigt bestimmte PHP Pakete, welche bei der Ubuntu Standardinstallation nicht automatisch installiert werden. Sie können mit nachfolgendem Befehl installiert werden.
$ sudo apt-get install php-mbstring php-gd php-xml php-geoip geoip-database-contrib
Anschließend muss PHP einmal neu geladen werden
$ sudo /etc/init.d/php7.0-fpm reload
[ ok ] Reloading php7.0-fpm configuration (via systemctl): php7.0-fpm.service.
Installation
Nun kann die eigentliche Installation gestartet werden. Dazu muss im Browser die Domain aufgerufen werden, für welche die nginx Konfiguration erstellt wurde (hier im Beispiel https://analytics.example.com).
Zuerst kann die Sprache auf Deutsch umgestellt werden. Dazu einfach oben Links auf „English“ klicken (1) und in der sich öffnenden Liste anschließend „Deutsch“ auswählen (2).
Nun kann mit einem Klick auf „Nächste“ die Installation gestartet werden.
Im zweiten Schritt der Installation wird geprüft ob das Szstgem alle Vorraussetzungen erfüllt. Falls alle Vorraussetzungen erfüllt werden wird zu beginn der Seite ein „Nächste“ Button angezeigt, womit man zum nächsten Schritt gelangt
Falls nicht alle Vorraussetzungen erfüllt sind wird am Beginn der Seite kein Button angezeigt. Die erkannten Probleme werden aber auf der Seite angezeigt. Nachfolgend ein Screenshot von einem Problem des Datei-Integritätschecks, welches ich bei der Installation hatte. Hier wurde direkt der entsprechende Befehl angezeigt um es zu beheben. Nachdem das Problem behoben wurde kann einfach die Seite neu geladen werden (F5). Falls anschließend zu beginn der Seite der „Nächste“ Button angezeigt wird kann er einfach geklickt werden. Ansonsten sollten zuerst die weiteren angezeigten Probleme behoben werden.
Im dritten Schritt müssen die Verbindungsdaten zur Datenbank eingegeben werden. Konkret bedeutet dies der Benutzer, das Passwort sowie der Datenbankname. Anschließend kann auf „Nächste“ geklickt werden.
Schritt 4 zeigt die Bestätigung, dass die Datenbanktabellen erfolgreich angelegt wurden. Mit einem klick auf „Nächste“ gelangt man zum nächsten Schritt.
Im fünften Schritt wird der Piwik Hauptadministrator Account angelegt. Dazu muss ein Login, Passwort sowie E-Mail Adresse angegeben werden. Zusätzlich habe ich bei mir noch den Harken bei „Wichtige Piwik Community Updates per Mail zukommen lassen“ entfernt. Auch ohne diesen Harken werden Benachrichtigungen für Updates versendet.
Schritt 6 erlaubt es direkt eine Website zu Piwik hinzuzufügen, welche anschließend getrackt werden kann. Dazu muss der Name der Website, die zugehörige URL, die Zeitzone sowie ob es sich um eine Ecommerce Seite handelt angegeben werden. Anschließend kann auf „Nächste“ geklickt werden.
Schritt sieben Zeigt den Tracking-Code für die gerade angelegte Website an. Dieser kann direkt in den head-Tag der Website eingebaut werden um mit dem tracken zu starten. Anschließend kann auf „Nächste“ geklickt werden um zum letzten Schritt zu gelangen.
Schritt 8 ist eine Bestätigung, dass Piwik erfolgreich installiert wurde. Es können direkt einige Privatsphäreeinstellungen bearbeitet werden. Ich habe sowohl die Do-not-Track Unterstützung als auch anonzmisierung der IP-Adressen aktiviert gelassen. Mit einem Klick auf „Weiter zu Piwik“ gelangt man zur Login Website der gerade erstellten Piwik installation.
Konfiguration
Auf der Login Seite können jetzt die in Schritt 5 angegebenen Logindaten des Hauptadministrators verwendet werden um sich mit einem Klick auf „Anmelden“ einzuloggen.
Falls der Tracking-Code noch nicht in die Webseite eingebaut wurde landet man nach dem Einloggen auf eine Seite die einem daran erinnert, dass noch keine Daten aufgezeichnet wurde. Mit einem Klick auf das Zahnrad am rechten oberen Rand gelangt man zur Administration von Piwik.
Standorterkennung
Die Kachel der Systemprüfung zeigt an, dass es ein Warnung zur Standorterkennung gibt (1). Um diese Warnung zu beheben muss links im Menü Standorterkennung ausgewählt werden (2).
Hier muss link GeoIP (PECL) (1) ausgewählt und mit einem Klick auf „Speichern“ (2) gespeichert werden.
Nach einem erneuten Klick auf das Zahnrad wird wieder die Administration aufgerufen. Dort sind jetzt unter Systemprüfung keine Fehler oder Warnungen mehr gelistet.
Force SSL
Ich nutze das zusätliche Plugin Force SSL. Es erlaubt nur Piwikzugriffe über HTTPS/SSL und erhöht somit die Sicherheit der Piwik installation. Um es zu Installieren muss zunächst im Linken Menü der Marketplace aufgerufen werden (1). Anschließend kann nach Force SSL gesucht werden (2). In den Resultaten kann bei Force SSL einfach auf den „Install“ Button (3) geklickt werden um es zu installieren.
Nachdem das Plugin installiert wurde bietet Piwik direkt an es zu aktivieren.
Nun kann Piwik sicher in seinem vollen Funktionsumfang genutzt werden.