Session Laravel 4.1会话变量被随机遗忘

Session Laravel 4.1会话变量被随机遗忘,session,laravel-4,session-variables,Session,Laravel 4,Session Variables,我在Apache上使用的是Laravel4.1应用程序,在我的本地开发机器上一切正常,但在我的登台机器(位于共享主机上)上,用户会随机注销并提示再次输入他们的凭据 相关设置: app/config/session.php: <?php return array( 'driver' => 'file', 'lifetime' => 120, 'expire_on_close' => true, 'files' => storage_pa

我在Apache上使用的是Laravel4.1应用程序,在我的本地开发机器上一切正常,但在我的登台机器(位于共享主机上)上,用户会随机注销并提示再次输入他们的凭据

相关设置:

app/config/session.php:

<?php
return array(
    'driver' => 'file',
    'lifetime' => 120,
    'expire_on_close' => true,
    'files' => storage_path().'/sessions',
    'connection' => null,
    'table' => 'sessions',
    'lottery' => array(2, 100),
    'cookie' => 'laravel_session',
    'path' => '/',
    'domain' => null,
    'secure' => false,
);
及之后:

a:3:{
    s:6:"_token";s:40:"7o3b6NhiuDKXq4ftvngUefqe6cWybX1tzPEcDaxk";
    s:9:"_sf2_meta";a:3:{s:1:"u";i:1399318721;s:1:"c";i:1399318721;s:1:"l";s:1:"0";}
    s:5:"flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}
登录会话消失,这将导致Laravel的会话类假设用户未经过身份验证。不过,我不确定为什么会删除这个会话变量。据我所知,登录会话变量上没有调用Session::forget、::clear()、::remove()或::invalidate()

我还注意到_token变量在请求之间是恒定的,直到问题出现的那一刻才改变,正如您在上面看到的


知道这里发生了什么吗?

切换到数据库会话管理器似乎解决了问题。我怀疑在我的主机服务器配置中,php以某种方式清除了会话文件。

能否发布完整的会话配置?另外-您可以尝试其他会话驱动器吗?也许暂时使用数据库来查看问题是否存在?好的,我已经在上面发布了我的session.php,虽然不完全是问题-将cookie名称更改为“something”-不要使用下划线-这可能会导致问题。另外-尝试关闭expire\u on\u close,看看这是否有帮助。我认为您的会话正在被破坏和重新生成。这就是为什么当您丢失登录数据时会有一个新的令牌。我不相信会话正在被破坏,因为会话文件在整个过程中保持不变,并且具有相同的文件名/id。如果会话文件被销毁,是否会有新的会话文件?
a:3:{
    s:6:"_token";s:40:"7o3b6NhiuDKXq4ftvngUefqe6cWybX1tzPEcDaxk";
    s:9:"_sf2_meta";a:3:{s:1:"u";i:1399318721;s:1:"c";i:1399318721;s:1:"l";s:1:"0";}
    s:5:"flash";a:2:{s:3:"old";a:0:{}s:3:"new";a:0:{}}}