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

时间:2016-12-30 05:20:36

标签: php laravel laravel-5.2

我在laravel 5.2中创建了一个页面视图计数器。它在我在本地托管时工作,但我刚刚使用Vultr部署到服务器上,现在看来会话没有更新。我正在使用文件来存储会话,我可以看到正在创建文件。

这是我的代码

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

当我在本地托管时,我可以在没有查看计数器的情况下进行刷新,但我只检查了我的服务器上的数据库,并且它在我在实时服务器上进行的每次刷新时都会更新。存储文件夹的权限是777。

2 个答案:

答案 0 :(得分:1)

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

请将用户组更改为以下

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

现在应该可以了。

答案 1 :(得分:0)

我的愚蠢错误,我正在检查用户ID而不是帖子ID,所以它没有在会话中找到它。