Piwik-Bug bei Output-Compression

Nach dem Update von Piwik (eine OpenSource Software zum Erstellen von Besucherstatistiken auf Websites) auf die aktuelle Version 1.1.1 stellte ich fest, dass das Design vollständig zerschossen war und auch die JS-Dateien nicht mehr geladen werden konnten. Genauer: es wurde noch alles geladen allerdings enthielten all diese Dateien nur noch seltsam anmutende Zeichen. Ein genauerer Blick verriet, dass es sich hier um doppelt gepackte Serverausgaben handelte.

Da mein Server von sich aus alles komprimiert (per gzip) was auszugeben ist – inkl. aller von PHP generierten Inhalte, lag es nahe zu vermuten, dass Piwik selbst ebenfalls noch einmal zur Tat schreitet. In der zentralen Klasse „Piwik“ (core/Piwik.php) Zeilen 664 und 665 findet sich der Auslöser:

$zlibOutputCompression = ini_get('zlib.output_compression');
$phpOutputCompressionEnabled = !empty($zlibOutputCompression);

Hier wird offensichtlich nur eine von mehreren Möglichkeiten der Ausgabe-Komprimierung geprüft. Ergebnis: für alle anderen möglichen Einstellungen wird die interne Kompression im nachfolgenden else-Zweig aktiv und somit doppelt komprimiert. Um das zu umgehen habe ich meine eigene config mit geprüft – heraus gekommen ist nun folgendes:

$zlibOutputCompression = ini_get('zlib.output_compression');
$outputHandler = ini_get('output_handler');
$phpOutputCompressionEnabled = (!empty($zlibOutputCompression) || $outputHandler == 'ob_gzhandler');

Mit diesem Fix läuft Piwik jetzt für mich wieder problemlos.

Debian „Squeeze“(6.0) veröffentlicht

Heute Nacht wurde Version 6.0 der freien Linux Distribution Debian veröffentlicht [1], die unter anderem PHP 5.3.3 (vermutlich mit einigen Sicherheitspatches, die u.a. das Rechenproblem von PHP fixen – die auch in der offiziellen PHP Version 5.3.5 enthalten sind), MySQL 5.1.49, Apache 2.2.16 und lighttpd 1.4.28 enthält[2]. Neben zahlreichen Versionsupdates enthält der Standardkernel seit dieser Version keinerlei unfreie Bestandteile mehr[3], Intallations-Images die ohne proprietäre Bestandteile nicht auskommen wurden im „non-free“-Bereich angesiedelt, allerdings mit dem Hinweis, dass die Debian-Community deren Weiterentwicklung nicht gewährleisten kann, weil man hier auf die Anbieter der entsprechenden Bestandteile angewiesen ist.

In den nächsten Tagen werde ich meinen Server – dessen „Herz“ ebenfalls mit Debian schlägt auf Squeeze updaten, nachdem ich einige Tests vorgenommen habe um unerwünschte Nebeneffekte zu vermeiden.

Zeitgleich mit dem Release von Squeeze wurden die Internetseiten des Debian-Projektes vollständig überholt und erstrahlen nun in einem (wie ich finde) schönerem und modernerem Design

Quellen:
[1] Debian 6.0 “Squeeze” released
[2] Debian GNU/Linux 6.0 — Release-Informationen
[3] Debian 6.0 »Squeeze« wird mit vollständig freiem Linux-Kernel veröffentlicht

Update (18.02.2011):
Das Update des Servers ist jetzt erfolgreich und nahezu problemlos erfolgt.