ich soll die Dauer der Sessions auf unserem Webserver für jede Domain unterschiedlich bestimmen. Das klingt einfach, aber irgendetwas mache ich offensichtlich seit vielen Tagen falsch.
Auf meiner Informationssuche im Netz habe ich vor allem folgenden Artikel erhellend gefunden:
http://stackoverflow.com/questions/3865 ... to-overrid
Leider hat aber auch er mich nicht ermächtigt die gestellte Aufgabe zu bewältigen.
Habe ich richtig verstanden wie die effektive Session-Dauer zu Stande kommen soll?:
Folgende Variablen in den unterschiedlichen PHP-Konfigurationsdateien sind anscheinend relevant:
Code: Alles auswählen
session.cookie_lifetime = 0
session.gc_probability = 0
session.gc_divisor = 100
session.gc_maxlifetime = 86400
Das spielt auf einem Debian-Server (wie unserem) allerdings keine Rolle, denn da sollte die Session wegen einem übergeordneten Cronjob unter: /etc/cron.d/php5 nach etwa 24 Stunden (86400 Sekunden) automatisch beendet werden, da dieser Cronjob unter Debian alle 30 Minuten abläuft. Dabei wird angeblich nur die letzte Variable: session.gc_maxlifetime aus allen php.ini-Dateien ausgelesen und der höchste gefundene Wert verwendet. Die drei anderen Variablen sind damit auf Debian-Servern anscheinend bedeutungslos, da der sonst übliche Garbage Collector aus Sicherheitsgründen bzw. wegen einem fehlenden Schreibrecht im entsprechenden Ordner auf Debian-Servern gar nicht aufgerufen wird.
Das klingt zwar so weit plausibel, aber irgendetwas scheint dennoch anders zu funktionieren weil bisher alle meine Einstellungen wirkungslos geblieben sind. Alle Sessions werden nach etwa einer halben Stunde beendet obwohl die neu gesetzten Werte durchaus bei einem Aufruf von phpinfo() als übernommen angezeigt werden.
In den folgenden PHP-Konfigurationsdateien habe ich ohne jeglichen Effekt die oben genannten Werte gesetzt:
- /etc/php5/cgi/php.ini
- /etc/php5/cli/php.ini
- /usr/lib/php5/lifetime
- /var/www/fcgi/domain-name/php5/php.ini
Ich hatte sogar schon den gesamten Cronjob unter: etc/cron.d/php5 auskommentiert. Das hatte ebenfalls keinen Effekt.
Welchen offensichtlich entscheidenden Faktor übersehe ich?
(Vielen Dank an "niemand" für den Hinweis darauf, dass ich Cronjob falsch geschrieben hatte.)