PHP-FPM chroot + Zend OpCache = Problem

22.04.2014 yahe administration legacy linux security

Ich habe testweise einmal den Zend OpCache ausprobiert, der seit PHP 5.5.0 direkt enthalten ist und war eigentlich ziemlich zufrieden. Der Speicherverbrauch bei der Ausführung von WordPress war auf 1/5 geschrumpft. Allerdings haben sich Probleme gezeigt, bei denen ich noch nicht genau weiß, wie ich sie beheben soll.

So kam es vor, dass ich im Adminbereich von calc.pw eine Einstellung tätigen wollte und plötzlich auf der Loginseite des WeizenSpr.eu Adminbereichs landete oder dass mir im Browserfenster von WeizenSpr.eu per Popup das Loginfenster angeboten wurde, weil angeblich meine Session abgelaufen war. Anfangs ging ich davon aus, dass evtl. Safari Probleme mit der Verwaltung der Cookies haben könnte, deshalb verwendete ich anschließend verschiedene Browser für beide Seiten, einmal Safari und einmal Firefox. Doch auch dieses Vorgehen half nicht. Erschwerend kam hinzu, dass calc.pw sporadisch gar nicht laden wollte und stattdessen eine leere Seite anzeigte, ohne auffällige Einträge im Errorlog.

Erst langsam kam mir der Gedanke, dass es am Zend OpCache liegen könnte. Die grundlegenden Einstellungen von WordPress (z.B. Datenbank-Zugänge, Session-Cookie-Schlüssel, korrekte URL der Webseite, etc.) lagern in der PHP-Konfigurationsdatei "wp-config.php". Offenbar verwendete der Zend OpCache mal die richtige Datei und mal die völlig falsche Datei, was die kaputten Sessions und auch die Redirects zur anderen Webseite erklären würde.

Es kam mir der Gedanke, dass das Problem in der chroot-Funktion von PHP-FPM liegen könnte. Offenbar hat der Zend OpCache in dieser Konstellation Probleme damit, die Dateien zu unterscheiden, denn relativ vom chroot-Heimverzeichnis aus gesehen sind die WordPress-Pfade natürlich komplett identisch. Nach dem Deaktivieren des Caches und dem Neustarten von PHP-FPM funktionierten beide Seiten problemlos. Die Sessions gingen nicht kaputt, ich erhielt keine fehlerhaften Redirects mehr und auch die sporadischen Totalausfälle von calc.pw verschwanden.

Die Frage, die sich jetzt nur stellt, ist, wann wohl jemand von PHP dieses Problem beheben wird. Solange das Problem nicht gelöst ist, werde ich den Cache nicht weiter einsetzen können.


Search

Categories

administration (40)
arduino (12)
calcpw (2)
code (33)
hardware (16)
java (2)
legacy (113)
linux (27)
publicity (6)
review (2)
security (58)
thoughts (21)
windows (17)
wordpress (19)