通过查看thinkphp5自带的代码发现没有设置session过期时间的地方,只是在\thinkphp\library\think\Session.php有
if (isset($config['expire'])) {
ini_set('session.gc_maxlifetime', $config['expire']);
ini_set('session.cookie_lifetime', $config['expire']);
}
设置过期时间。
session.gc_maxlifetime:session的有效生存时间,过了这个时间session将进入销毁队列。
session.cookie_lifetime:值为0代表关闭浏览器,保存在客户端的sessionid将立即失效。
只有在config.php文件里面设置全局session过期时间。
网站有后台与前台应用目录,后台如果为application/admin 前台如果为application/index
那么, 他们一般会在单独的应用目录中设置config.php配置文件
比如你可以查看.application/index/config.php 这个文件是否存在.admin目录也同理.都各自有配置文件.
里面的内容应该为
return [
// +----------------------------------------------------------------------
// | 应用设置
// +----------------------------------------------------------------------
// +----------------------------------------------------------------------
// | 会话设置
// +----------------------------------------------------------------------
'session' => [
'id' => '',
// SESSION_ID的提交变量,解决flash上传跨域
'var_session_id' => '',
// SESSION 前缀
'prefix' => 'index',
// 驱动方式 支持redis memcache memcached
'type' => '',
// 是否自动开启 SESSION
'auto_start' => true,
//过期时间 单位秒
'path'=>TEMP_PATH,//表示session保存在自己网站根目录中的runtime目录中
'expire'=>3600*24*30,//过期时间
],
];
参考: