Php 当我将项目从一台电脑移动到另一台电脑时,Laravel 5.2会话停止工作(停止持久化)
当我将我的Laravel 5.2项目从一台电脑移到另一台电脑时,会话停止工作。 我有完全相同的PHP安装和PHP.ini(版本不重要,我已经检查过了)。我运行Php 当我将项目从一台电脑移动到另一台电脑时,Laravel 5.2会话停止工作(停止持久化),php,laravel,session,laravel-5.2,Php,Laravel,Session,Laravel 5.2,当我将我的Laravel 5.2项目从一台电脑移到另一台电脑时,会话停止工作。 我有完全相同的PHP安装和PHP.ini(版本不重要,我已经检查过了)。我运行php artisan-serve来服务我的页面 很明显,问题在于环境。但具体在哪里?唯一明显的区别是Windows的版本。我在Windows 10上有问题,在Windows 7上一切正常。一切都应该在这两方面都起作用 下面是一段用于再现错误的代码。 路由在每个请求上返回“value”。但它应该是第二个价值之后的“另一个价值”。这让我很生气
php artisan-serve
来服务我的页面
很明显,问题在于环境。但具体在哪里?唯一明显的区别是Windows的版本。我在Windows 10上有问题,在Windows 7上一切正常。一切都应该在这两方面都起作用
下面是一段用于再现错误的代码。
路由在每个请求上返回“value”。但它应该是第二个价值之后的“另一个价值”。这让我很生气
//Route::group(['middleware' => ['web']], function () {
Route::get('/try', function (Request $request) {
if ($request->session()->has('key')) {
$request->session()->put('key', 'another value');
} else {
$request->session()->put('key', 'value');
}
return $request->session()->all();
});
//});
我有一个新安装的带有默认参数的Laravel 5.2(5.2.29)。我已经检查了所有参数,对我来说,它们很好:
config\session.php
环境署署长
php.ini
会话正在
\storage\framework\Sessions
中编写,但是对于每个请求都可以。如果在过去两周内安装或更新了Laravel,请尝试删除web
中间件。现在web
中间件自动应用,如果您试图手动添加它,您可以捕获类似的会话相关错误。@AlexeyMezenin真的吗?他们又干了一次?:)我试过你的建议,但没用。(@AlexeyMezenin你能通过链接到提交来引用这个吗?@BenSwinburne,我没有链接,对不起。但是你可以比较5.2.27和更旧的版本。从5.2.27开始,你不必手动包含web
中间件:删除“web”中间件肯定能解决问题。谢谢@AlexeyMezenin
'lifetime' => 120,
'expire_on_close' => false,
SESSION_DRIVER=file
session.gc_maxlifetime = 1440
session.cookie_lifetime = 0