Piwik 1.2: One-Click-Update mit Umweg

Habe heute gesehen, dass die neue Version 1.2 von Piwik veröffentlicht wurde und habe natürlich sofort versucht, diese zu Installieren. Dafür bietet Piwik ein nettes Feature an: das One-Click-Update. Wäre auch eine super Sache, wenn es tatsächlich so funktionieren würde. Leider mag diese Form des Updates auf meinem System (Debian Lenny amd64, PHP Version 5.2.6-1) nicht mehr seit der Version 1.0 so arbeiten.

Das Update von Version 1.0 auf 1.1 hatte ich dann per Manuellem Upgrade gemacht, was ja an sich nicht so schwer ist, aber nicht so praktisch. Daher wollte ich diesmal sehen, wo es genau hakt, wenn ich den One-Click-Update anstosse.
Die Fehlermeldung sagte im Prinzip nur aus, dass es einen Fehler beim Öffnen des ZIP-Archivs gab, welches erfolgreich heruntergeladen wurde.
Ein Blick in das Verzeichnis bestätigte, dass die Datei vorhanden war und die Zugriffsrechte in Ordnung waren (mein Webserver ist so konfiguriert, dass er mit den Rechten des jeweiligen Webspace-Users auf die Dateien zugreift, von daher konnte es in dieser Richtung sowieso kaum einen Fehler geben).

Nach einer kurzen Debugging-Phase kam ich dahinter, dass sich die Methode open() der PHP-Klasse ZipArchive mit dem Fehler-Code 5 (ZIPARCHIVE::ER_READ) zurückmeldet. In den Kommentaren zu dieser Methode habe ich dann auch noch einen Hinweis auf zwei PHP-Bugs gefunden (40873 und 8714), die aber nicht ganz zu meinem Problem zu passen scheinen, denn ich konnte die Zip-Datei auf Konsolen-Ebene völlig problemfrei per „unzip“ entpacken.

Ich habe mich nicht weiter mit den Bugbeschreibungen auseinandergesetzt, nachdem ich las, dass mit PHP 5.3 das Problem anscheinend gelöst wäre.
Wenn ich mein System von Lenny auf Squeeze aktualisiere, müsste es also mit etwas Glück wieder passen…

Das kam in dem Moment aber nicht in frage, also habe ich die Datei in PIWIK/tmp/latest/ entpackt und den verantwortlichen Code auskommentiert, der das Entpacken des Archivs übernimmt… und siehe da: es funzt natürlich!
Danach kam nur noch ein Datenbank-Update, der problemfrei durch lief.

Wer es genauer wissen will, ich habe in der Datei PIWIK/plugins/CoreUpdate/Controller.php ein paar Zeilen der Methode oneClick_Unpack() auskommentiert.
Die Methode sah danach so aus:
Achtung: Ich habe das nur für Version 1.1 zum Upgrade auf Version 1.2 durchgeführt! Andere Versionen sehen wahrscheinlich anders aus!

private function oneClick_Unpack()
{
$pathExtracted = PIWIK_USER_PATH . self::PATH_TO_EXTRACT_LATEST_VERSION;
unlink($this->pathPiwikZip);
$this->pathRootExtractedPiwik = $pathExtracted . 'piwik';
}

Update: Habe gerade ohne Problem Piwik per One-Click-Update von der Version 1.2 auf die Version 1.2.1 aktualisiert. Kurz zuvor hatte ich noch ein System-Update von Debian Lenny gemacht, in dem die PHP-Pakete aktualisiert worden waren (aber immer noch PHP 5.2.6-1), daher kann ich nicht sagen, ob der ein Bugfix von Piwik 1.2 gegriffen hat oder die neueren PHP-Pakete dafür verantwortlich sind.
Jedenfalls klappts jetzt wieder! Yay.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>