Page 1 of 1

Lebensdauer einer PHP Session

Posted: Wed 29. Mar 2017, 15:40
by select name from me;
An welcher Stelle in Keyhelp kann ich die maximale Lebensdauer einer Session in PHP ändern? Idealerweise global.

Normalerweise wäre das der Wert session.gc_maxlifetime in der php.ini. Da aber session.gc_probability=0 ist, gehe ich davon aus, dass irgendein Skript die Sitzungen aufräumt.

Re: Lebensdauer einer PHP Session

Posted: Wed 29. Mar 2017, 20:48
by Tobi
Das geht bei Einstellungen --> Paneleinstellungen --> Bereich Konteneinstellung --> Session Gültigkeit

Re: Lebensdauer einer PHP Session

Posted: Wed 29. Mar 2017, 21:10
by b0snaX
Tobi wrote:Einstellungen --> Paneleinstellungen --> Bereich Konteneinstellung --> Session Gültigkeit
Damit wird meines wissens nur die Session Sitzung im Adminbereich geregelt. Aber das ist vermutlich nicht das was select name from me; wollte.

Re: Lebensdauer einer PHP Session

Posted: Wed 29. Mar 2017, 21:27
by Tobi
b0snaX wrote:Aber das ist vermutlich nicht das was select name from me; wollte.
Ja, da habe ich auch schon gegrübelt was er meint ;)

Ansonsten gibt es noch unter Benutzerverwaltung--> Benutzer bearbeiten --> PHP-Einstellungen --> Zusätzliche Einstellungen

Dort hat es zumindest Auswirkungen auf den jeweiligen Benutzer.
Insofern nicht global.

Alternativ müsste man eigentlich auch die "Master php.ini" direkt anpassen können.
Das gilt dann systemweit.

Re: Lebensdauer einer PHP Session

Posted: Wed 29. Mar 2017, 23:32
by b0snaX
Tobi wrote:Alternativ müsste man eigentlich auch die "Master php.ini" direkt anpassen können.
Das gilt dann systemweit.
Soweit ich weis, wird sie ja gerade durch die von dir gennanten einstellungen Überschrieben also unter:

Benutzerverwaltung--> Benutzer bearbeiten --> PHP-Einstellungen --> Zusätzliche Einstellungen

Re: Lebensdauer einer PHP Session

Posted: Thu 30. Mar 2017, 07:33
by Tobi
b0snaX wrote: Soweit ich weis, wird sie ja gerade durch die von dir gennanten einstellungen Überschrieben also unter:

Benutzerverwaltung--> Benutzer bearbeiten --> PHP-Einstellungen --> Zusätzliche Einstellungen
Richtig.
Entweder userspezifisch oder global.

Re: Lebensdauer einer PHP Session

Posted: Thu 30. Mar 2017, 08:20
by select name from me;
Vielen Dank für eure Antworten. Mir geht es um die Sitzungsdauer in meinen PHP Skripten.

Da die Sitzungsdateien im tmp Verzeichnis des jeweiligen Benutzers liegen, und session.gc_probability=0, denke ich, dass nicht die PHP Garbage Collection aufräumt.

Eine zentrale Stelle wäre mir lieber. :mrgreen: Ansonsten muss ich das nachträglich reinfummeln. :?

Re: Lebensdauer einer PHP Session

Posted: Thu 30. Mar 2017, 10:40
by Tobi

Re: Lebensdauer einer PHP Session

Posted: Thu 30. Mar 2017, 11:33
by select name from me;
Danke. Das normale Verhalten unter Debian/Ubuntu kenne ich bereits. Aber das Skript /usr/lib/php5/maxlifetime löscht nicht in den temp Verzeichnissen der Keyhelp User.

Ich vermute, Keyhelp hat hier einen eigenen Cronjob. Da bin ich mir aber nicht sicher.

Falls Keyhelp die Sitzung selbst per Cronjob aufräumt, stellt sich die Frage, aus welchen Dateien in welcher Reihenfolge der Wert session.gc_maxlifetime gelesen wird, und wo ich mit möglichst wenig Aufwand den Wert anpassen kann, ohne nach einem Keyhelp Update die Werte wieder ändern zu müssen.

Ich hatte gehofft, dass mir Keyweb hier kurz eine Antwort geben kann.

Emotional bereite ich mich schon mal darauf vor, es nachträglich für alle Benutzer in der Datenbank ändern zu müssen. :lol:

Re: Lebensdauer einer PHP Session  [GELÖST]

Posted: Thu 30. Mar 2017, 15:01
by Alexander
Grüße,

Unter Panel-Aufgaben-Intervalle gibt es einen Job der sich wie folgt nennt:

Session-Daten-Bereinigung
Löschen unbenutzter PHP-Sessions aus den temporären Ordnern der Benutzeraccounts.

Bei jedem Durchlauf des Scripts werden die Session-Dateien im Userordner tmp/ Ordner überprüft: Wenn die letzte Änderung mehr als 120 Minuten her ist, werden diese gelöscht.

(Der aktuelle Wert des Benutzers für gc_maxlifetime kommt also an dieser Stelle (noch) nicht wirklich zum Tragen :oops: )

Re: Lebensdauer einer PHP Session

Posted: Thu 30. Mar 2017, 15:28
by select name from me;
Vielen Dank für Deine Antwort, Alexander. Jetzt wird einiges klarer.

Der Wert (120) lässt sich nicht ändern?

Ich hatte heute morgen beobachtet, dass eine Sitzungsdatei im tmp Verzeichnis ca. 24 Minuten nach der Anlage gelöscht wurde. Also in etwa dem default Wert von 1440 Sekunden. Jetzt stellt sich die Frage, wo der Fehler liegt. In meiner Applikation oder in Keyhelp?

Re: Lebensdauer einer PHP Session

Posted: Thu 30. Mar 2017, 15:45
by Alexander
Die 120 Minuten ist derzeit fix.
(Wenn Bedarf besteht kann ich den auch gern variabel machen)

Kannst du das Ganze reproduzieren?
Wenn du z.B. weißt, wann dir die Datei abhanden gekommen ist, kannst du ja mal bei den Panel-Aufgaben-Logs (sessioncleanup.log) schauen, ob zu besagter Zeit der KeyHelp Job gelaufen ist. Viel steht dort zwar nicht drin, aber du kannst die Startzeit/Endzeit sehen.

Re: Lebensdauer einer PHP Session

Posted: Thu 30. Mar 2017, 16:56
by select name from me;
Alexander wrote:Die 120 Minuten ist derzeit fix.
(Wenn Bedarf besteht kann ich den auch gern variabel machen)
Für mich passt das so wie es ist. Aber danke.
Alexander wrote: Kannst du das Ganze reproduzieren?
Wenn du z.B. weißt, wann dir die Datei abhanden gekommen ist, kannst du ja mal bei den Panel-Aufgaben-Logs (sessioncleanup.log) schauen, ob zu besagter Zeit der KeyHelp Job gelaufen ist. Viel steht dort zwar nicht drin, aber du kannst die Startzeit/Endzeit sehen.
Super Tipp! In dem Zeitraum lief der Job natürlich nicht. :(

Dieses Verhalten tritt nur bei den Keyhelp Servern auf. Auf anderen Servern mit der gleichen Ubuntu Version passiert das scheinbar nicht.
Da muss ich wohl noch ein wenig weiter forschen.