default-session-management
Ingo Turski
- webserver
0 Hamstar1 dedlfix
- php
Hi,
wenn ich mir Notices ausgeben lasse, kommt bei session_start gelegentlich:
Notice: session_start(): ps_files_cleanup_dir: opendir(/tmp) failed: Permission denied (13) in ...
Soweit ich in Erfahrung bringen konnte, liegt das an der Einstellung des default-session-managements. Mein Provider sagt hierzu, dass die gesetzten Berechtigungen für das Temp Verzeichnis aus Sicherheitsgründen notwendig sind.
Meine Frage: ist es wirklich nicht möglich, den Server so einzustellen, dass diese Notices nicht mehr kommen und trotzdem keine Sessions anderer Kunden ausgelesen werden können?
Ich möchte nur wenn es sich nicht vermeiden läßt ein eigenes
temporäres Verzeichnis für Sessions anlegen und die Notices brauche ich zumindest in der Entwicklungs- und Testphase.
freundliche Grüße
Ingo
Meine Frage: ist es wirklich nicht möglich, den Server so einzustellen, dass diese Notices nicht mehr kommen und trotzdem keine Sessions anderer Kunden ausgelesen werden können?
Ich möchte nur wenn es sich nicht vermeiden läßt ein eigenes
temporäres Verzeichnis für Sessions anlegen und die Notices brauche ich zumindest in der Entwicklungs- und Testphase.
"Notices" kenne ich erst einmal nicht als Objekt, aber selbstverständlich kann auf das Rechtesystem eines beliebigen Servers dermassen manipulierend eingegriffen werden, dass "keine Sorgen entstehen" (mal ganz dezent formuliert ;).
Du kannst ja mal ein wenig spezifizieren...
echo $begrüßung;
Notice: session_start(): ps_files_cleanup_dir: opendir(/tmp) failed: Permission denied (13) in ...
Soweit ich in Erfahrung bringen konnte, liegt das an der Einstellung des default-session-managements. Mein Provider sagt hierzu, dass die gesetzten Berechtigungen für das Temp Verzeichnis aus Sicherheitsgründen notwendig sind.
Es ist immer eine gute Idee, jeder Anwendung ihr eigenes Session-Verzeichnis zuzuweisen. Der Session-Garbage-Collector wendet nämlich die im Script eingestellten Verfallswerten auf alle Session-Dateien an, auch auf die, die zu anderen (eigenen oder fremden) Anwendungen gehören. Das führt dann zu grauen Haaren bei der Beantwortung der Frage: "Warum ist die Session jetzt schon abgelaufen, obwohl sie doch eine Stunde halten sollte?"
Meine Frage: ist es wirklich nicht möglich, den Server so einzustellen, dass diese Notices nicht mehr kommen und trotzdem keine Sessions anderer Kunden ausgelesen werden können?
Man könnte einen Wert relativ zum Home-Verzeichnis des Users einstellen. Das geht aber nicht, wenn der User apache oder wwwrun heißt - sprich: alle Scripte mit des Webservers Usernamen laufen.
echo "$verabschiedung $name";
Hi,
Es ist immer eine gute Idee, jeder Anwendung ihr eigenes Session-Verzeichnis zuzuweisen. Der Session-Garbage-Collector wendet nämlich die im Script eingestellten Verfallswerten auf alle Session-Dateien an, auch auf die, die zu anderen (eigenen oder fremden) Anwendungen gehören. Das führt dann zu grauen Haaren bei der Beantwortung der Frage: "Warum ist die Session jetzt schon abgelaufen, obwohl sie doch eine Stunde halten sollte?"
Oops... d.h. wenn ein anderer Kunde 5 Minuten eingestellt hat, dann können meine Sessions auch schon nach 5 Minuten enden? Das wäre natürlich dumm und wirklich ein Grund für ein eigenes Temp.
Man könnte einen Wert relativ zum Home-Verzeichnis des Users einstellen. Das geht aber nicht, wenn der User apache oder wwwrun heißt - sprich: alle Scripte mit des Webservers Usernamen laufen.
D.h. mein Provider hat Recht? Wenn ich die Konfiguration richtig deute, heißt der User wwwrun(30).
freundliche Grüße
Ingo