ubuntuusers.de

Apache2/php5 maxlifetime erhöhen

Status: Gelöst | Ubuntu-Version: Server 12.04 (Precise Pangolin)
Antworten |

unsen

Anmeldungsdatum:
2. September 2008

Beiträge: 133

Hallo alle,

das Problem ist z.T. schon gelöst - wenn mir meine Änderungen nicht bei jedem Update überschrieben werden würden:

Es ging darum die session-lifetime zu erhöhen.

  1. in der .htaccess ist das über php_value session.gc_maxlifetime 14400 geschehen.

2. Zusätzlich muss man aber seit neuestem den garbage-collector noch davon abhalten unbenutzte Sessions vorschnell zu löschen:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
~# cat /usr/lib/php5/maxlifetime
#!/bin/sh -e

max=1440

if which php5 >/dev/null 2>&1; then
    for sapi in apache2 apache2filter cgi fpm; do
	if [ -e /etc/php5/${sapi}/php.ini ]; then
	    cur=$(php5 -c /etc/php5/${sapi}/php.ini -d "error_reporting='~E_ALL'" -r 'print ini_get("session.gc_maxlifetime");')
	    [ -z "$cur" ] && cur=0
	    [ "$cur" -gt "$max" ] && max=$cur
	fi
    done
else
    for ini in /etc/php5/*/php.ini /etc/php5/conf.d/*.ini; do
        cur=$(sed -n -e 's/^[[:space:]]*session.gc_maxlifetime[[:space:]]*=[[:space:]]*\([0-9]\+\).*$/\1/p' $ini 2>/dev/null || true);
        [ -z "$cur" ] && cur=0
        [ "$cur" -gt "$max" ] && max=$cur
    done
fi

echo $(($max/60))

exit 0
root@ds92-51-153-133:~# 

hier hab ich max von 1440 auf 14400 erhöht, was den gewünschten Effekt erzielt hat

Problem: bei Updates kann das wieder überschrieben werden - was auch in den Tetzten Tagen offenbar passiert ist.

gibt's nicht eine Möglichkeit das ganze update-Sicher zu konfigurieren?

stegy

Anmeldungsdatum:
14. Februar 2007

Beiträge: 413

Hey, schau dir mal hier dpkg dpkg-divert an.

unsen

(Themenstarter)

Anmeldungsdatum:
2. September 2008

Beiträge: 133

stegy schrieb:

Hey, schau dir mal hier dpkg dpkg-divert an.

danke für den Tip, das kann funktionieren. War aber nicht gaz so wie gedacht. Nach dem ubuntu-Prinzip sind doch die meisten user Einstellungen in irgendwelchen config-dirs über hooks so sicher aufbewahrt, dass sie dort updatesicher und konsistent mit dem System verbleiben können.

Gibt's nicht eine bessere Stelle, an der die Session-Lifetime eingestellt werden SOLLTE?

Das kann doch nicht sein, dass jetzt alle apache-sessions nur noch 24 Minuten gültig sind ohne dass man das irgendwo bequemer einstellen könnte.

unsen

(Themenstarter)

Anmeldungsdatum:
2. September 2008

Beiträge: 133

der Vollständigkeit halber: die php5-common.README.Debian aus dem debian paket informiert darüber, dass php5 über apache keinen Zugriff mehr auf das session-Verzeichnis /var/lib/php5 (root:root) hat. die einzige Möglichkeit session-Dateien zu löschen geht also über einen root-cron.

Ich finde das alles ein bisschen schräg - die schönen Möglichkeiten die sessiondauer über htaccess z.B. Clientabhängig zu steuern klappt also nicht mehr wirklich.

Alternative:

  • session-path über das script selber setzen: session.save_path

dann sind die Sessions vom garbage-collector geschützt. Rechte passend setzen und auch selber aufräumen.

Antworten |