Laravel存Cookie仍生成会话文件致inode超限500错误,如何禁用?
1. 确认会话驱动配置完全生效
首先确保会话驱动已正确切换为cookie:
- 修改项目根目录下的
.env文件,设置:SESSION_DRIVER=cookie - 同步
config/session.php配置,确保驱动读取环境变量:'driver' => env('SESSION_DRIVER', 'cookie') - 执行
php artisan config:clear清除配置缓存,避免旧配置残留
2. 排查强制使用File驱动的代码或第三方包
部分场景下自定义代码或扩展会硬指定会话驱动:
- 搜索项目代码,检查是否存在
Session::setDriver('file')或config(['session.driver' => 'file'])这类强制设置 - 查看
composer.json中的第三方包,部分支付、日志类扩展可能修改会话驱动,必要时查阅对应包的文档或源码
3. 清理现有会话文件
立刻清理已生成的会话文件缓解inode占用:
- 使用Laravel内置命令:
php artisan session:clear - 或通过Shell命令直接删除(注意权限):
rm -rf storage/framework/sessions/*
4. 配置会话垃圾回收(保险措施)
若仍有零星文件生成,配置自动垃圾回收机制:
- 在
config/session.php中调整参数:'lifetime' => 120(缩短会话有效期,单位分钟)'gc_divisor' => 100、'gc_probability' => 1(提高垃圾回收触发概率)
5. 验证驱动切换结果
通过tinker工具确认当前会话驱动:
php artisan tinker
执行以下代码查看输出:
Session::getDefaultDriver();
若输出cookie则配置生效,若仍为file需重新检查配置和代码。
内容的提问来源于stack exchange,提问作者Talha T.
相关产品推荐
相关产品推荐

