/* if this is set to 'native' it will use file.
if this is set to 'array' sessions will not persist across requests
effectively expiring them immediately.
*/
'driver' => 'file'
/* number of minutes after which the session is available for Laravel's
built in garbage collection.
Prior to 4.1 you could set this to zero to expire sessions when
the browser closes. See the next option below.
*/
'lifetime' => 60
/* If true sessions will expire when the user closes the browser.
This effectively ignores your lifetime setting above.
Set to false if you want Laravel to respect the lifetime value.
If your config file was written before 4.1 you need to add this.
*/
'expire_on_close' => false,
$ artisan changes 4.1.* | grep -i native
-> Native session driver has been replaced by 'file'. Specifying 'native' driver will just use the new file driver.
5条答案
按热度按时间mxg2im7a1#
在
app/config/session.php
中,您有:lifetime
允许您设置会话过期时间(以分钟为单位,而不是以秒为单位)的选项
表示会话将在一小时后过期。
这里还有一个设置:
决定当浏览器关闭时会话是否过期。
您可能感兴趣的其他设置还有
php.ini
值:和/或
这些是默认值。
第一个表示会话cookie将存储多长时间-默认值为0(直到浏览关闭)。第二个选项表示在多少秒后PHP可以销毁此会话数据。
我说可能是因为在
php.ini
文件中还有一个选项session.gc_probability
,它决定了运行垃圾收集器的可能性。默认情况下,在1440秒(24分钟)后,此会话数据将被销毁的概率只有1%。juzqafwq2#
检查你的php.ini,它有一个session.gc_maxlifetime(以及session.cookie_lifetime)的值,该值设置了PHP允许会话持续的时间限制。当Laravel设置选项时,它将
cookie_lifetime
作为app/config/session.php
中设置的值传递。但是,会话不会在达到最大生存期后立即过期。发生的情况是,在经过该时间量之后,会话可以被垃圾收集器移除。
解决问题
一种解决方法是检查
php.ini
文件。你可以定义这个变量:session.gc_maxlifetime
。默认设置为1440。* 发表评论或删除 *.从现在开始,您的会话可以使用您的session.php配置值正常工作。
k10s72fa3#
原生PHP会话支持从Laravel 4.1开始被删除
要配置会话生存期,请编辑
app/config/session.php
并设置以下内容:参考文献:
在命令行中运行
artisan changes 4.1.*
,查看有关native
会话驱动程序等效于file
的说明tez616oj4#
App\Config\Session.php
检查终身…
您还可以设置…
vq8itlhq5#
您也可以处理
.env
文件的这种形式在
.env
文件SESSION_LIFETIME=120
中