CakePHPのsessionってsessionデータに作成時間を保存しておき、読み出す時にcore.phpで設定した時間が経過していないかチェックしているんですね。
サーバー設定の方はさわりに行ってないみたいです。
core.phpの
Configure::write('Session.timeout', '120'); Configure::write('Security.level', 'medium');
で3時間以上あってもサーバーの
- session.cookie_lifetime
- session.gc_maxlifetime
の方が短ければガーベジコレクションでsessionファイルが消えるので予想より早くログアウトしたりします。
なので
bootstrap.phpに
ini_set("session.cookie_lifetime", 100 * Configure::read('Session.timeout')); ini_set("session.gc_maxlifetime", 100 * Configure::read('Session.timeout'));
coreの値使ってサーバー設定をcore触るだけで設定できるようにしました。
(100掛けてるのはmediumの係数の100です。session.php見ましたが定数にはなっていない感じでした。)
バージョンは1.2.6です。