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

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
lenni
Mitglied
Beiträge: 202
Registriert: 25.10.2004 16:25

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

Beitrag 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?
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

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

Beitrag 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).
KB:knigge
lenni
Mitglied
Beiträge: 202
Registriert: 25.10.2004 16:25

Beitrag 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...?!
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag 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
KB:knigge
lenni
Mitglied
Beiträge: 202
Registriert: 25.10.2004 16:25

Beitrag von lenni »

Merci vielmals!
Antworten

Zurück zu „Coding & Technik“