【问题标题】:Redis Sessions in PHP ignoring php.ini settingsPHP 中的 Redis 会话忽略 php.ini 设置
【发布时间】:2014-08-14 19:58:19
【问题描述】:

我们最近将 PHP SESSION 管理从 memcache 切换到了 Redis。虽然 SESSION 被正确存储,但我们注意到人们现在每 1440 秒注销一次,或者默认值为 session.gc_maxlifetime。但是在我们的 php.ini 文件中,我们设置了以下值:

session.gc_maxlifetime = 86400
session.cookie_lifetime = 86400

我已经通过phpinfo() 确认,只有当我们将保存处理程序设置为session.save_handler = files 时才能正确读取这些值。但是,每当我们将保存处理程序设置为 Redis 时,这些 php.ini 值将被忽略,并使用默认的 PHP 值。我们的 php.ini 中的 Redis 行是:

session.save_handler = redis
session.save_path = tcp://127.0.0.1:6379?auth=noauth

我的想法是,也许我可以将另一个参数传递到 session.save_path URL 来设置密钥的 TTL 值,但是关于哪些参数有效的文档很少。有没有办法让 Redis 从 php.ini 获取正确的 TTL 值?或者在 URL 中传递它的方法?

【问题讨论】:

    标签: php session redis


    【解决方案1】:

    我能够找到一种解决方法,但是它仍然无法回答为什么 Redis 不会读取我的 php.ini 文件中的设置。相反,我能够更改代码中的设置并正确识别它:

    ini_set('session.gc_maxlifetime', 604800);
    session_start();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-04
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      相关资源
      最近更新 更多