Skip to content

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

Piwik umgezogen - Datenschutzeinstellungen prüfen

Nur eine kurze Info: Ich habe Piwik im Zuge der Umstellung auf V2 auf eine andere Subdomain geworfen (lag bisher als Unterverzeichnis im Weblog). Es könnte daher sein, dass deine Privatsphäre-Auswahl nicht mehr korrekt berücksichtigt wird. Falls du darauf Wert legst, schau bitte mal hier vorbei und überprüfe das.

Unabhängig davon gilt natürlich weiterhin: IPs werden in den letzten beiden Blöcken anonymisiert, siehe dazu auch die Informationen zum Datenschutz.

Ansonsten sollte eigentlich alles wie gewohnt laufen und die Feed-/Twitter-/Facebook-Leser merken von der Änderung sowieso nichts. smile

[Serendipity] Qualität der Vorschaubilder verbessern

Vor einer ganzen Weile bin ich über einen alten Beitrag im s9y-Forum gestolpert, in dem beschrieben wird, wie man (vielleicht) die Qualität der Vorschaubilder mittels ImageMagick verbessern kann.

Dazu muss man in der Datei /include/functions_images.inc.php etwa bei Zeile 663 folgende Zeile

$cmd     = escapeshellcmd($serendipity['convert']) . ' -antialias -resize '. serendipity_escapeshellarg($newSize) .' '. serendipity_escapeshellarg($infile) .' '. serendipity_escapeshellarg($outfile);

gegen diese tauschen

$cmd     = escapeshellcmd($serendipity['convert']) . ' -antialias -resize '. serendipity_escapeshellarg($newSize) .' -modulate 105,140 -unsharp 0.5x0.5+1.0 -quality 75 '. serendipity_escapeshellarg($infile) .' '. serendipity_escapeshellarg($outfile);

Im Endeffekt werden Helligkeit und Kontrast etwas erhöht, eine Unschärfe-Maskierung darüber gelegt und die JPG-Qualität mit 75% festgelegt (standardmäßig wird m. W. die Qualität des Originalbilds übernommen). Wer es genauer wissen will, kann ja einfach mal die Hilfe von ImageMagick durchlesen. smile

Ob die Vorschaubilder im Ergebnis wirklich besser sind, muss jeder für sich selbst entscheiden. wink

Eigentlich würde ich auch gerne mal einen Feldversuch starten und alle Vorschaubilder quadratisch zuschneiden lassen (damit z. B. die blöden versetzten Umbrüche nicht immer sind), aber darüber muss ich mir erstmal noch Gedanken machen.