【问题标题】:Apache session works differently on the same serverApache 会话在同一台服务器上的工作方式不同
【发布时间】:2016-04-18 07:19:04
【问题描述】:

情况是我们有一台装有 Apache 的本地服务器机器,以及同一本地服务器上的两个项目。

问题是我们设置session.gc_maxlifetime = 10的时候,比如服务器在N1项目10秒后退出,成功删除会话文件,但是在另一个项目N2,会话文件没有被删除,会话未注销。

session.gc_probability 和 session.gc_divisor 都设置为 1。

这可能是什么原因? 谢谢。

【问题讨论】:

    标签: php apache session centos server


    【解决方案1】:

    这可能是因为 PHP 垃圾收集器,它可能在所需的时间段后删除或不删除会话。见说明:

    http://php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime

    session.gc_maxlifetime 指定经过的秒数 数据将被视为“垃圾”并可能被清理。垃圾 收集可能在会话开始期间发生(取决于 session.gc_probability 和 session.gc_divisor)。

    (强调我的)

    【讨论】:

    • @Zarebski,谢谢你的回答。概率和除数参数都设置为 1,与 100% 相同。所以我们把may改为must。我不认为这是这里的原因......
    • 我认为这里重要的是垃圾收集可能在会话开始期间发生。如果站点上没有活动,即会话正在启动,那么 GC 无论如何都不会被激活。它不会作为一个单独的活动运行,总是在寻找垃圾,它只是作为其他一些会话处理活动的一部分发生
    猜你喜欢
    • 2017-04-07
    • 2018-07-07
    • 2014-01-02
    • 2011-02-09
    • 2019-11-03
    • 2012-04-07
    • 2019-08-11
    • 2014-03-02
    • 1970-01-01
    相关资源
    最近更新 更多