Frage

Ich bin mit dem Kohana 3 Rahmen, und bin mit der nativen Treiber Sitzung.

Aus irgendeinem Grunde gelegentlich die Sitzungen nicht zu schreiben, um ihre Datei.

Warning: session_start() [function.session-start]: open(/tmp/sess_*****, O_RDWR) failed: Permission denied (13) in /home/site/public_html/system/classes/kohana/session/native.php  on line 27

Ich bin ziemlich sicher, dass Kohana hat seine eigene eingebaute Fehlerhandler, aber es wird nicht mit diesem Fehler ausgelöst (das heißt, es zeigt wie eine normale PHP-Fehler auf, nicht die Kohana Fehler).


(Quelle: alexanderdickson.com )

Jeder, der jemals verwendet hat, wird Kohana dies bemerken scheint die Fehlerbehandlung des Kohana umgangen zu haben (vielleicht setzen mit set_error_handler() ).

Gibt es trotzdem, um diesen Fehler zu verhindern, erscheint ohne von der nativen Sitzung Schalt (d dateibasierte) -Treiber?

Soll ich nur geben gute Praxis die Boote und prepend einen @ Fehler Suppressor session_start() im Kerncode von Kohana? Sollte ich die error_reporting() entspannen?

Danke

War es hilfreich?

Lösung

Sie rufen ini_set('session.save_path', APPPATH.'sessions') (ersetzen APPPATH.'sessions' mit dem Verzeichnis, das Sie wollen) in bootstrap.php zu Kraft-Sitzungen application/sessions geschrieben werden. Dadurch wird die Sicherheit der Verwendung von nativen Sitzungen erhöhen und sollte löst Ihr Problem.

Andere Tipps

Es ist bis zu PHP session.save_path Richtlinie, können Sie es bis zu einem gewissen beschreibbaren Ordner in php.ini außer Kraft setzen können, oder Sie können dies in der .htaccess versuchen;

 php_value session.save_path '/path/to/folder/you/can/write'

Edit: nur so ich vergessen Sie nicht, setzen Sie Ihre benutzerdefinierten Session-Ordnerebene unterhalb des htdocs / public_html / was auch immer

.

Auch wenn das alles ist ein wenig übertrieben, da Sie Ihren Server-Administrator höflich fragen zu überprüfen, was ist das Problem mit Berechtigungen.

Dies bedeutet, dass Ihre PHP-Interpreter keine Schreibrechte in / tmp hat. Fragen Sie Ihren Server-Administrator zu beheben, -. Es ist in keinem Zusammenhang mit der App

Falls es Kollisionen mit Session-Dateien aus verschiedenen PHP-Prozesse (läuft unter verschiedenen Benutzern): sie unterschiedliche Sitzungs Temp dirs geben würde helfen. Zum Beispiel könnte man sich weg bewegt von / tmp / path / to / homedir / phptmp und eine Struktur wie das verwenden:

/path/to/homedir/
/path/to/homedir/htdocs
/path/to/homedir/phptmp
/path/to/homedir/logs
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top