Update 1.2.1 - Zend Session Fehler


#1

Moinsen!

Ich bin ja von Piwik wirklich begeistert, denke auch, dass des bei meinen Websites dann Google Analytics ablöst. Die Version 1.2 funktionierte bei mir einwandfrei, völlig perfekt - sodass ich da keinerlei Probleme an meinem Webserver vermute. Es ist ein Windows 2008 R2 Webserver mit Apache 2.2, PHP 5.3 und MySQL 5.5, alles mit der jeweiligen Standard-Konfiguration (ZEND sollte hier ebenfalls null herumzicken)

Vorhin habe ich auf 1.2.1 upgedated und promt “massive” Probleme gehabt. Ich muss wegen der Masse an Besuchern das zeitgesteuerte Updaten der Statistiken via beigelegtem Powershell-Script und Windows Aufgabenplanung nutzen - was zuerst ein ziemliches Problem war, was ich wenigstens halbwegs lösen konnte. Ich muss zwar trotzdem manuell das Update auslösen weil das trotz korrekter Einstellungen per Aufgabenplanung NICHT klappt - aber hey, das ist letztlich auch erstmal egal.

Vorhin jedoch ist mir bei diesem manuellen Ausführen aufgefallen, dass das Updaten per Powershell-Script vollkommen und gar nicht funktioniert. Ich hab daher mal den Output angeschaut, den das Script zurückgibt, und siehe da - anders als sonst, gibt das Powershell-Script einen HTML-Text zurück, der mich darüber informiert, dass die Zend-Session auf write-only gesetzt ist.

Ich kenn mich zwar mit PHP gut aus, aber beim Zend Framework stoß ich an meine Grenzen. Was is da denn los? Seit dem Update jedenfalls funktioniert weder das Updaten der Statistiken (zumindest nicht per Powershellscript), noch z.B. der Realtime-Viewer und wahrscheinlich auch das ein oder andere dann auch nicht, hab daher gar nicht erst weiter geschaut sondern gleich auf 1.2 zurück gesetzt.

Hier mal die Ausgabe vom Shellscript:


C:\Users\Administrator>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
 -Noninteractive -Noprofile -Command "& C:\servers\vhosts\bla.de\subdomains\sta
tistics\misc\cron\archive.windows.ps1"
Starting Piwik archiving...
Piwik archiving finished.
Starting Scheduled tasks...

<html>
<head>
        <title>Piwik &rsaquo; Error</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="shortcut icon" href="plugins/CoreHome/templates/images/favico
n.ico" />
        <link rel="stylesheet" type="text/css" href="themes/default/simple_struc
ture.css" />
</head>
<body>
<div id="content">
        <div id="title"><span id="h1">Piwik </span><span id="subh1"> # open sour
ce web analytics</span></div>

<p>Zend_Session is currently marked as read-only.</p><p><a href="index.php">Go t
o Piwik</a></p> <ul>
                                                <li><a target="_blank" href="?mo
dule=Proxy&action=redirect&url=http://piwik.org">Piwik.org homepage</a></li>
                                                <li><a target="_blank" href="?mo
dule=Proxy&action=redirect&url=http://piwik.org/faq/">Piwik Frequently Asked Que
stions</a></li>
                                                <li><a target="_blank" href="?mo
dule=Proxy&action=redirect&url=http://piwik.org/docs/">Piwik Documentation</a></
li>
                                                <li><a target="_blank" href="?mo
dule=Proxy&action=redirect&url=http://forum.piwik.org/">Piwik Forums</a></li>
                                                <li><a target="_blank" href="?mo
dule=Proxy&action=redirect&url=http://demo.piwik.org">Piwik Online Demo</a></li>

                                                </ul></div>
</body>
</html>

Finished Scheduled tasks.

Mich würde jetzt echt mal interessieren, was genau da schief läuft?


(Thomas Seifert) #2

Nach dem hier scheint das Verzeichnis tmp/sessions im Piwik-Ordner für den Nutzer, mit dem das Script ausgeführt wird, nicht beschreibbar zu sein. Versuch doch mal die Rechte dort manuell zu setzen.


#3

Danke Thomas! Das hatte ich natürlich geprüft - aber daran kanns auch nicht liegen, denn sonst würde praktisch garnix laufen^^

Aber ich weiß gerade worans liegt. Manchmal bin ich echt zu blöd, aber ich hab nicht damit gerechnet, dass beim Update auch die Powershell-Datei überschrieben wird. DAS ist wenigstens das Problem für die Zend-Session. Mir ist das eben auch nur aufgefallen, weil das Downgrade zu 1.2 ebenfalls den Fehler verursachte.

Bliebe aber noch eben das Realtime-Panel, was nicht funktioniert - aber das wird ja in nem andren Thread schon behandelt. Des beobachte ich mal weiter.

Danke dir!


(Thomas Seifert) #4

Kannst Du das weiter erläutern? Inwiefern hat das Überschreiben der Powershell-Datei das Problem ausgelöst?


#5

oh stimmt, des hätte ich noch erwähnen sollen, falls andere selbiges Problem haben.

Man muss im Powershell-Script den Speicherort für die php.ini angeben und auch die %PATH%-Umgebungsvariable in Windows anpassen (man muss dort den Pfad zum Speicherort der php.exe angeben), damit Powershell das Script ausführen kann.

Das Update auf Piwik 1.2.1 jedoch hat auch das angepasste Powershell-Script überschrieben und aufs Original zurückgesetzt, damit wurde die php.ini und die php.exe natürlich nicht gefunden. Dass das allerdings mit einem Zend-Session-Fehler quittiert wird, ist irgendwie ein wenig… Blöde…


(Thomas Seifert) #6

Ah, danke für die Erläuterung! Mit PHP unter Windows bin ich nicht so flüssig, dass versuche ich immer zu vermeiden ;-).
Irgendein PHP scheint er ja auch ohne die Anpassungen gefunden zu haben und nimmt PHP unter Windows per Default nicht immer die php.ini aus dem Windows-Ordner?


#7

Mh, ich nutze XAMPP, das ich selbstredend nicht auf Standardeinstellungen gelassen hab, sodass mans im produktiven Bereich einsetzen kann. Jedenfalls, da werden sämtliche PHP/Apache-Files innerhalb des XAMPP-Ordners vorbehalten, da wird nichts unterhalb des Windows-Ordners genutzt. Darum muss man dann auch die %PATH% Umgebungsvariable von Windows anpassen, ohne des funktioniert des goar nisch :wink:

Wenn man allerdings wirklich komplett alles händisch ohne XAMPP oder sonstige Komplettpakete installiert, gibts die Möglichkeit der Nutzung des Windows-Ordners aber auch die Nutzung eines anderen Ordners - je nach dem, was man möchte. Bei den Komplettpaketen sinds in der Regel andere Speicherorte.