Chris (): Session - maxlifetime

Beitrag lesen

Hallo,

bei PHP wird das Aufräumen alter Sessiondateien durch den GC (Garbage Controller) übernommen. Der wird immer getriggert, wenn man das Sessionmanagement (session_start() ...) benutzt, aber auch nicht jedes Mal, sondern nur mit einer eingestellten Wahrscheinlichkeit. Je höher die Last auf dem Server ist, desto kleiner sollte die Wahrscheinlichkeit eingestellt werden, das das Ding sonst nur noch am Rödeln ist.

Außerdem kann man eine MaxLifetime einstellen, die eigentlich MinLifetime heißen müsste! Denn vor Ablauf dieser Zeit wird die Datei nicht gelöscht. Das System funktioniert nur auf Betriebssystemen, die ein Touch für Dateien auch registrieren, also NICHT auf einfachen Windows-Plattformen.

Wenn man das Veruzeichnis, in dem die Sessions abgelegt werden, gegen auslesen schützt (nicht dei Dateien selber), dann kann der GC nicht mehr tätig werden. Er scannt also tatsächlich das Verzeichnis nach "abgelaufenen" Dateien um sie dann zu löschen. Das übrige Sessionmanagement funktioniert trotzdem noch.

Wenn Du an die php.ini nicht herankommst gibt es wohl keine Möglichkeit, die Lebensdauer von Sessiondateien zu verlängern. Verkürzen kannst Du sie jederzeit, denn wenn der GC im Sessionverzeichnis lesen darf, dann darfst Du das mit Hilfe des PHP-Runtime auch, ist ja der gleiche User.

Grüße

Chris (C)