PHP: SESSION-LAUFZEIT
Autor: Vilma Plum
eingetragen: Montag, 22. August 2016 um 16:06 Uhr (34/2016 Kalenderwoche)
geändert: Freitag, 11. Juni 2021 um 15:19 Uhr (23/2021 Kalenderwoche)
Keywords: Session virtueller host
Text:
Die Session-Laufzeit sollte nach Vorgaben des BSI auf einer halben Stunde stehen. Betriebsseitig ist dies mit der Standard-Einstellung in der php.ini auf 24 Minuten realisiert. Eine Anwendung sollte nie den dort gesetzten Wert überschreiben.
1. Betriebliche Einstellungen zur Erhöhung der SESSION-Laufzeit:
1.1 Werte im virtuellen Host der Anwendung
phpadminvalue session.gcmaxlifetime 7200
phpadminvalue session.gcprobability 100
phpadminvalue session.gcdivisor 100
phpadminvalue session.savepath /var/tmp/aphpvl-statistik.prod.is.ble.de
vl-statistik.prod: ist auf die Server-Umgebung und die Anwendung anzupassen.
1.2 Einrichten des SESSION.save_path
Im Verzeichnis var/tmp/ des Servers ist der virtuelle Host als Ordner einzutragen; nach obigem Beispiel var/tmp/ aphpvl-statistik.prod.is.ble.de. Diesem Ordner müssen dann noch die für www-data notwendigen Rechte (auch Schreibrechte) gegeben werden.
2. Den Status einer Session kann man mit "session_status()" abfragen:
s. php.net
Quellcode:
/*
* PHP_SESSION_DISABLED, wenn Sessions deaktiviert sind. (_DISABLED = 0)
* PHP_SESSION_NONE, wenn Sessions aktiviert sind, aber keine existiert. (_NONE = 1)
* PHP_SESSION_ACTIVE, wenn Sessions aktiviert sind und eine existiert. (_ACTIVE = 2) */
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
sessionStatus = [
PHP_SESSION_DISABLED => '0 (Sessions sind deaktiviert)',
PHP_SESSION_NONE => '1 (Session ist aktiviert, aber keine existiert)',
PHP_SESSION_ACTIVE => '2 (Session ist aktiviert und existiert)'
];
echo '<h3>Die Cacheverwaltung ist jetzt auf '.$cache_limiter.' gesetzt.<br />
Die Session wird für '.$cache_expire.' Minuten im Cache gespeichert.<br />
Die Session-Status ist '.$sessionStatus[session_status()].'.</h3>';