Ric*_*ler 5 php session symfony
我的Symfony2应用程序显示一个主页面,从那里它主要使用AJAX请求通过模态向用户显示内容.
我注意到,在用户闲置一段时间(大约15-30分钟)后,会话被破坏,用户退出并需要再次登录.这令人难以置信地令人沮丧,因为我不能指望用户每次闲置几分钟时都会再次登录.
据我所知,这个问题不应该根据我的config.yml文件发生,如下:
framework:
session:
cookie_lifetime: 0 # Session lifetime in seconds
gc_maxlifetime: 28800 # Seconds after which data will be seen
# as garbage and potentially cleaned up
handler_id: ~ # Current using the default session handler
Run Code Online (Sandbox Code Playgroud)
为了完整起见,我目前的环境如下:
php.ini)摘要:
我怎样才能解决这个问题?
Ric*_*ler 11
问题:
事实证明,在Debian/Ubuntu系统上,有一个系统cronjob,每30分钟运行一次,清除所有"旧"会话.这就是问题所在.
cronjob实际上并不知道什么构成"旧".cronjob只调用一个PHP-CLI脚本/usr/lib/php5/maxlifetime,然后删除超过特定年龄的所有会话文件.由于脚本由PHP-CLI和独立的Symfony2的参与,它不知道你指定什么样的价值观gc_maxlifetime,并cookie_lifetime在你的Symfony2的配置文件.相反,如果只是默认使用配置文件中的session.cookie_lifetime和session.gc_maxlifetime值/etc/php5/cli/php.ini,默认情况下为24分钟.因此,无论您在Symfony2配置文件中指定了什么,如果您闲置太久,您的会话将被删除.
解决方案:
/etc/cron.d/php5或删除cronjob文件,| 归档时间: |
|
| 查看次数: |
4465 次 |
| 最近记录: |