Seite 1 von 1

session_start(): ps_files_cleanup_dir: opendir(/tmp) failed

Verfasst: 07.04.2005 10:48
von lenni
Ich bekomme öfter die Fehlermeldung session_start(): ps_files_cleanup_dir: opendir(/tmp) failed

Weiss jemand, wie diese entsteht und wie ich das am besten verhindern kann?

Anscheinend sollen Session Daten in das /tmp Verzeichnis des
Apache Servers geschrieben werden, was aber wohl voll ist?!

Kann ich evtl. ein Verzeichnis anderes Verzeichnis angeben?
Wenn ja: wie?

Oder gibt es eine andere Lösung?

Re: session_start(): ps_files_cleanup_dir: opendir(/tmp) fai

Verfasst: 07.04.2005 21:40
von Pyramide
lenni hat geschrieben:Anscheinend sollen Session Daten in das /tmp Verzeichnis des
Apache Servers geschrieben werden, was aber wohl voll ist?!
Ich würde eher sagen, daß die nicht mehr genutzten Daten gelöscht werden sollen (cleanup_dir), dem Prozess aber die Rechte zum Auflisten aller Dateien fehlen (opendir(/tmp) failed).

Verfasst: 08.04.2005 12:48
von lenni
Das Problem tritt nur recht selten auf.
Daher liegt es vermutlich nicht an fehlenden Rechten.

Vielleicht ist das Verzeichnis in dem Moment zu voll und es dauert ein bisschen, bis das Verzeichnis wieder geleert wird und weitere
Sessiondaten geschrieben werden können...?!

Verfasst: 08.04.2005 20:06
von Pyramide
Hab einfach mal mit google gesucht und gleich im zweiten Ergebnis eine ausführliche Beschreibung gefunden:
http://www.simplemachines.org/community/index.php?topic=11928.msg103617#msg103617 hat geschrieben:> Notice: session_start(): ps_files_cleanup_dir: opendir(/tmp) failed:
> Permission denied (13) in /kunden/tose.de/.... on line 109

Dabei handelt es sich um keine Fehlermeldung sondern vielmehr um einen
Hinweis (PHP hat diesen auch korrekt als "Notice" deklariert).

Die Meldung tritt auf, seitdem wir vor einigen Wochen die Rechte des
globalen tmp Verzeichnisses aus Sicherheitsgründen geändert haben. Es
nunmehr nicht mehr möglich den Verzeichnisinhalt anzuzeigen, oder auf
Dateien zuzugreifen, deren Namen man nicht kennt.
Auch ist ein schreiben oder löschen von Dateien nur noch möglich, wenn
diese von ihnen, bzw. ihren Scripten erstellt wurden.

Da PHP versucht alte Sessions zu löschen, indem es sich den Inhalt des
tmp Verzeichnisses anzeigt, um die Session Dateien herauszufinden, die
gerade dort liegen. Da dies aufgrund der Rechtevergabe nicht mehr
möglich ist erscheint der beobachtete Hinweis.
Alte Sessions werden allerdings auch nach einiger Zeit automatisch von
unseren Servern gelöscht, sodass dies keine Beeinträchtigung darstellt.

Diese Meldung erscheint übrigens in der Standardeinstellung von PHP
nicht, man muss das Error Reporting von PHP also manuell umstellen, um
auch Notice angezeigt zu bekommen. Sie könnten das daher in den
betreffenden Scripten deaktivieren, bzw. sich dafür an die Entwickler
wenden.

Alternativ besteht natürlich auch die Möglichkeit die Sessions in
einem "eigenen" tmp Verzeichnis unterhalb ihres Webspaces abzulegen.
PHP hält hierfür die Funktion Session Save Path zur Verfügung:
http://www.php.net/session_save_path

Verfasst: 11.04.2005 10:08
von lenni
Merci vielmals!