Php Laravel会话未在生产服务器上更新

Php Laravel会话未在生产服务器上更新,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,我在Laravel5.2中创建了一个页面浏览计数器。当我在本地托管时,它可以工作,但我只是使用Vultr部署到服务器上,现在看来会话没有更新。我正在使用文件存储会话,我可以看到正在创建文件 这是我的密码 $viewed = Session::get('viewed', []); if (!in_array($id, $viewed)) { Event::fire(new ViewPostEvent($post)); $request->

我在Laravel5.2中创建了一个页面浏览计数器。当我在本地托管时,它可以工作,但我只是使用Vultr部署到服务器上,现在看来会话没有更新。我正在使用文件存储会话,我可以看到正在创建文件

这是我的密码

    $viewed = Session::get('viewed', []);
    if (!in_array($id, $viewed))
    {
        Event::fire(new ViewPostEvent($post));
        $request->session()->push('viewed', $post->id);
    }

当我在本地托管时,我可以在不增加视图计数器的情况下进行刷新,但我只是在服务器上检查了我的数据库,每次在live server上进行刷新时它都会更新。存储文件夹的权限为777。

在生产服务器上,不建议授予
777权限。您可以为存储文件夹授予
755权限
。接下来要检查的是文件夹的所有权

请将用户组更改为以下内容

sudo chown www-data:www-data /var/www/html/larvel/storage/framework/sessions
然后从laravel根文件夹运行以下命令

 php artisan cache:clear
之后,快跑

composer dump-autoload
使用以下命令重新加载apache/nginx服务器

sudo service apache2 reload

现在应该可以了

我犯了一个愚蠢的错误,我检查的是用户id而不是帖子id,所以它在会话中找不到它

我打了一针,但没用。我将会话驱动程序从文件更改为cookie,但仍然遇到相同的问题,因此我认为它与会话的存储无关