Skip to content

kleiner Piwik-Testballon

Der folgende Hinweis gilt eigentlich nur für meine treuen Feed-Leser: Im Serendipity-Forum kam ein paar mal die Anfrage, ob man denn mit Piwik vielleicht auch die Anzahl der Feed-Leser/Abonnenten ermitteln könnte. Gute Frage.

Ich habe mir daher mal in den Feed ein kleines Tracking-Bild eingebunden um zu prüfen, ob da etwas einigermaßen sinnvolles bei rumkommt. Die Privatsphäre sollte ausreichend geschützt bleiben, da ich (wie hoffentlich bekannt ist) alle IPs in den letzten beiden Blöcken auf 0 setzen lasse.

Falls sich ein realistisches Ergebnis bzw. verwertbare Daten abzeichnen, werde ich die Geschichte mal ordentlich dokumentieren.

Piwik auf Uberspace installieren

Update am 10.1.2014: Bereich bzgl. cron-Job überarbeitet

Piwik installieren

Das dürfte wohl kein Problem sein und hat sangyye schon mal beschrieben

mkdir -p tmp && cd tmp
wget http://piwik.org/latest.zip
unzip latest.zip

Danach das Verzeichnis “piwik” dahin schieben, wohin man es denn haben möchte. Alternativ kann man das alles natürlich auch lokal machen und dann mit einem (s)FTP-Programm hochladen.

automatische Archivierung und Erzeugung der Berichte per cron

Diesen Schritt muss man zwar nicht unbedingt machen, es wird aber für stärker frequentierte Seiten empfohlen, da dadurch die Auswertung der Berichte schneller läuft.

Erstmal muss man in den Einstellungen von Piwik unter “Allgemeine Einstellungen” den Punkt

Piwik erlauben, die Archivierung zu starten, wenn Berichte im Browser angezeigt werden.

auf Nein stellen, damit die Berichte nicht mehr im Browser generiert werden.

Beim Punkt

Berichte für heute (sowie jeden anderen Zeitraum, die den heutigen Tag beinhalten) höchstens so oft neu berechnen:

muss man für sich selbst überlegen, welcher Zeitraum wirklich sinnvoll/nötig ist und ob der Server dabei nicht zu sehr überlastet wird.

Danach geht der Spaß in der Shell los und man fängt mit der Bearbeitung der Crontab an. Diese wird (eh klar) mit crontab -e aufgerufen und dann mit dem folgenden cron ergänzt:

PATH=/package/host/localhost/php-5/bin:/bin:/usr/bin
PHPRC=/home/UberspaceUser/etc
MAILTO="mail@example.org"
*/5 * * * * php /var/www/virtual/UberspaceUser/sub.example.org/piwik/misc/cron/archive.php --url=http://sub.example.org/ >/home/UberspaceUser/piwik-archive.log

Hinweis zur letzten Zeile: Ab einer Version (keine Ahnung welche genau) wurde das Archivierungs-Skript verschoben/geändert, man muss daher die Zeile wie folgt ändern:

*/5 * * * * php /var/www/virtual/UberspaceUser/sub.example.org/piwik/console core:archive --url=http://sub.example.org/ >/home/UberspaceUser/piwik-archive.log
  • Die ersten beiden Zeilen sind (soweit ich lesen konnte) erforderlich, um PHP5 für das Script zu verwenden. Es muss natürlich der eigene Uberspace-Username eingetragen werden.
  • MAILTO wird verwendet, damit man bei Fehlern eine E-Mail bekommt. Die E-Mail-Adresse ist natürlich anzupassen. wink
  • Mit der letzten Zeile wird das archive-Script alle 5 Minuten für die benannte Seite angestoßen und ein Ausgabe-Log im Home-Verzeichnis erzeugt. Kann natürlich auch nach /dev/nul gehen, wenn man das nicht braucht. Der Uberspace-Username und die Homepage sind hier natürlich ebenfalls anzupassen.

Danach dann einfach alles speichern und den Editor beenden.

Am Anfang bietet es sich an, die Log-Datei mit tail -f ~/piwik-archive.log zu überwachen, ob der cron korrekt ausgeführt wird.

Das dürfte es dann aber auch schon gewesen sein. smile

Komprimierung (gzip) aktivieren

Damit die Datenübertragung (speziell das Tracking-Javascript piwik.js) vom Server zum Browser schneller läuft, sollte/kann man sich im Hauptverzeichnis von Piwik noch eine .htaccess mit folgendem Inhalt anlegen, damit die serverseitige Komprimierung benutzt wird:

# rules for gzip-compression
<IfModule mod_deflate.c>
    # html, txt, css, js, json, xml, htc:
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
    AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript
    AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
    <FilesMatch "\.(ttf|otf|eot|svg)$" >
    SetOutputFilter DEFLATE
    </FilesMatch>
</IfModule>

weiterführende Links

Piwik-Hilfe zu Auto-Archivierung
Uberspace-Wiki zu cron
Uberspace-Wiki zu PHP in cron