設定したログイン時間よりも短い時間でログアウトしてしまう

a-blog cms では、ログインセッション時間を「.env」ファイルで設定できるようになっています。
デフォルトでは、72時間有効です。

# セッション
SESSION_COOKIE_LIFETIME=259200 # セッションのCookie有効期限

ただしサーバーの環境によっては、30分程度でログアウトしてしまう現象が発生することがあります。

原因

セッション管理にはPHPのセッションの仕組みを利用しています。 このセッション情報はデフォルトですとサーバー上のファイルとして管理しているのですが、このセッションファイルの有効期限が短い可能性がございます。

PHPデフォルトの設定だと、1/100の確率で、24分より古いセッションファイルが消えるので、これが影響している可能性が高いです。

session.gc_maxlifetime

サーバに保存されているセッションファイルを保護する有効期限。

session.gc_probability / session.gc_divisor

セッションファイルが消える確率。「session.gc_probability / session.gc_divisor」の確率で削除されます。

対策

php.ini で「session.gc_maxlifetime」の期限を伸ばしていただくか、config.user.php に以下コードを設定ください。

ini_set('session.gc_maxlifetime', 259200); // 72時間を設定