CakePHPでセッションが途中で切れるという現象に遭遇しました。
テストサーバーでは問題ないけど、本番サーバーに移すと症状が発生。
有効期限を30日にしているが、1時間ほどでセッション切れを起こす。
開発ツールを使って、セッションを見てみると、
なぜかセッションが2個発行されている。
1個はCakePHPで発行したもの。
もうひとつが謎のセッション
セッションの説明に下記の注意書きがありました。
https://www.php.net/manual/ja/session.configuration.php#ini.session.gc-maxlifetime
----------
注意: 異なる値を session.gc_maxlifetime に指定している 別々のスクリプトがセッションデータの保存場所を共有している場合、 一番小さい設定値に達した時点でデータが消去されます。
このような場合には、 お互いに session.save_path を使用します。
----------
なぞのセッションが1時間になっていて、それに巻き込まれてセッション切れを起こしているようでした。
サーバーはGMOクラウドサーバー
謎のセッションをどうすることもできない。
htaccessでの変更もエラーが出てできません。
save_pathを変える方法で対応します。
CakePHPのcore.phpを変更
‘defaults’ => ‘php’
↓↓↓変更↓↓↓
‘defaults’ => ‘cake’
これでセッションが/tmp/sessionsに生成されます。
セッションの巻き込み事故回避完了!