首页 > 解决方案 > 文件会话驱动程序在生产环境中无法正常工作(共享主机上的 Laravel)

问题描述

在我的本地环境中使用会话时一切正常,但是当我在共享主机中发布站点时,我开始注意到应用程序中的一些奇怪行为。过了一会儿,我意识到它与会话有关,特别是我注意到,当我在本地环境中工作时,存储/框架/会话文件夹只有一个文件,该文件会随着任何更改而不断更新,但随后在生产中我开始监控同一个文件夹,我意识到在进行任何更改而不是更新文件(或创建新文件并删除另一个文件)时,它正在创建一个新文件,但同时也保留了旧文件,从而使应用程序开始以错误的方式运行。

这是正常的还是应该像在本地环境中那样每个会话只有 1 个文件?

更新

登录用户后,应用程序要求选择他们想要工作的业务,并且他们可以在之后的业务之间进行更改,以存储他们选择的业务我使用会话并且在每次更改该属性之后出现问题的地方session 它创建一个新的会话文件而不删除旧的。再次,当我在本地做完全相同的事情时,它可以工作,但由于某种原因在共享主机上它没有。

解决方案

经过几天的尝试,我只是想出了解决方案。

我没有使用 Laravel 的 Global Helpers 来存储数据,而是抛出了请求,并且显然可以解决。

所以基本上不是这样做:

session('clienteElegido' => $client);

我为此更改它:

$request->session()->put('clienteElegido',$client); 我仍然不明白有什么区别,以及为什么它在我的本地环境中运行良好,而不是在共享主机中,但它现在这样运行,一切都很好。

感谢您的快速回复。

标签: laravelsessionproduction-environmentshared-hosting

解决方案


尝试清除缓存、路由、配置和视图

php artisan cache:clear
php artisan route:clear
php artisan config:clear
php artisan view:clear

让我们看看您的会话问题是否会得到解决。


推荐阅读