Hallo,
ich glaube ich bin meinem Problem jetzt auf der Spur. Zum Problem: Wenn ich schnell die Seite auffrischte oder eine neue Seite aufrief, bevor die andere fertig geladen war, erhielt ich ab und an Fehler die auf Schreibprobleme auf das /tmp Verzeichnis deuten.
- Code: Alles auswählen
Notice
(8): session_start() [function.session
-start
]: ps_files_cleanup_dir
: opendir(/tmp
) failed
: Permission denied
(13) [CORE
/cake
/libs
/session
.php
, line
539]Warning
(2): Cannot modify
header information
- headers already sent by
(output started at
/www
/htdocs
/w0064edd
/motz
/cake
/basics
.php
:111) [CORE
/cake
/libs
/session
.php
, line
540]Warning
(2): Cannot modify
header information
- headers already sent by
(output started at
/www
/htdocs
/w0064edd
/motz
/cake
/basics
.php
:111) [CORE
/cake
/libs
/session
.php
, line
597]Warning
(2): session_regenerate_id() [function.session
-regenerate
-id
]: Cannot regenerate session id
- headers already sent
[CORE
/cake
/libs
/session
.php
, line
599]
Die folgende Seite brachte mich auf das Problem:
http://blog.thaichaiguy.com/847/mediatemple-with-cakephp-session-lost-during-refresh/Im Standard ist Cake so eingestellt, dass nicht das /tmp Verzeichnis der Applikation verwendet wird, sondern das Verzeichnis welches in der php.ini angegeben ist. Gerade bei gehosteten Anwendungen ist der Zugriff jedoch nicht gewährleistet.
In der Konfigurationsdatei core.php muss folgende Zeile geändert werden
- Code: Alles auswählen
Configure::write('Session.save', 'php');
nach
- Code: Alles auswählen
Configure::write('Session.save', 'cake');
Dies führt dazu, dass das in Cake eingebaute Session Handling verwendet wird. Jetzt muss man nur dafür sorgen, dass das Verzeichnis /app/tmp schreibbar ist oder, man stellt (bei all-inkl) den User PHP-User als Eigentümer für das Verzeichnis /app/tmp ein - der hat auf jeden Fall alle Rechte.
Ciao Thomas