【发布时间】:2020-06-09 09:41:42
【问题描述】:
我在framework.yaml 中有此代码:
session:
handler_id: ~
cookie_lifetime: 43200
gc_maxlifetime: 43200
我希望会话保持 12 小时左右,但几分钟后会话过期。我还应该做什么修改?提前谢谢。
【问题讨论】:
标签: php symfony session-cookies php-7 symfony-3.4
我在framework.yaml 中有此代码:
session:
handler_id: ~
cookie_lifetime: 43200
gc_maxlifetime: 43200
我希望会话保持 12 小时左右,但几分钟后会话过期。我还应该做什么修改?提前谢谢。
【问题讨论】:
标签: php symfony session-cookies php-7 symfony-3.4
如果我没记错的话,您当前的配置使 PHP 将会话文件保存在 /var/lib/php/sessions 中,并且始终检查该目录并通过 gc_maxlifetime 在 php.ini 中配置的 cron 作业删除其中的 PID。
要解决此问题,您必须覆盖会话处理程序并让 Symfony 使用 handler_id 和 save_path 选项处理会话,如下所示:
framework:
session:
handler_id: session.handler.native_file
save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'
cookie_lifetime: 43200
gc_maxlifetime: 43200
【讨论】: