Image may be NSFW.
Clik here to view.Seit einigen Wochen schlug die Aktualisierung von WordPress-Plugins bzw. Themes in meinem – in Microsoft Azure gehosteten – Blog fehl. Die Suche im Internet führte leider auch zu keiner Lösung, da meistens nur auf die Rechte im Dateisystem verwiesen wurde.
Doch heute bin ich durch einen Zufall auf die Lösung gestoßen…
Ende letzten Jahres hatte ich meinen Blog von der BlogEngine.NET auf WordPress, und von den Azure Cloud Services auf die Azure Web Apps (aka Azure Web Sites), umgezogen.
Alles lief wunderbar, und ich war mit dem Ergebnis vollkommen zufrieden.
Das Problem
Vor wenigen Wochen konnte ich urplötzlich weder WordPress-Plugins noch Themes aktualisieren.
Die WordPress Engine aktualisierte sich allerdings weiterhin ohne Probleme.
Genauer gesagt, konnten beim Aktualisieren der Plugins, die Alte Version nicht mehr entfernt werden.
Downloading update from http://downloads.wordpress.org/plugin/<plugin>.zip Unpacking the update Deactivating the plugin Removing the old version of the plugin Could not remove the old plugin Plugin upgrade Failed
Nachdem die Aktualisierung fehlgeschlagen war, waren auch die Plugins verschwunden.
Leider ging anschließend auch die Neuinstallation der betroffenen Plugins nicht mehr.
Hier bekam ich die Fehlermeldung, dass für das Plugin relevante Verzeichnisse nicht mehr angelegt werden konnten.
Die einzige "Lösung" war ein Neustart der Web App.
Danach ging auch die Re-Installation wieder.
Bei meiner Suche im Internet stieß ich immer wieder auf Rechteprobleme im Dateisystem.
Dies führte allerdings zu keiner Lösung, da der Blog zum Einen auf Windows (und nicht Linux) gehostet wird und zum Anderen ausreichende Rechte vorhanden waren.
Endlich die Lösung
Heute bin ich endlich auf die Lösung gestoßen…
Danke an Cory Fowler für den Tipp!
Vor kurzem wurden Änderungen an der WinCache Extension for PHP durchgeführt, welche Anfragen ans Dateisystem, wie beispielsweise is_dir, is_file und file_exists, an WinCache umleiten.
Somit kann es passieren, dass bereits gelöschte Dateien »kurzfristig« als Vorhanden an PHP Skripte zurückgemeldet werden.
Diese Umleitungen können ganz einfach deaktiviert werden:
-
Falls noch nicht vorhanden, muss eine Datei mit dem Namen .user.ini Im Stammverzeichnis des Blogs angelegt werden.
Das wäre bei den Azure Web Apps: d:\home\site\wwwroot -
Dort muss die Zeile
wincache.reroute_enabled=0
hinzugefügt werden. - Sicherheitshalber hatte ich anschließend die Web App neu gestartet
Nachdem ich die Umleitungen deaktiviert hatte, lief auch das Aktualisieren der Plugins wieder.