PHP: SESSION-LAUFZEIT

edit | delete

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

Kategorien: Apache, PHP,

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
php
adminvalue session.gcprobability 100
phpadminvalue session.gcdivisor 100
php
adminvalue 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>';