Apache 使会话超时时间更长
Posted
技术标签:
【中文标题】Apache 使会话超时时间更长【英文标题】:Apache making the session time out longer 【发布时间】:2011-09-13 12:41:51 【问题描述】:我已经在 Apache 中更改了我的 php.ini 以具有这些设置:
session.gc_maxlifetime = 1440
session.cache_expire = 1500
但我的会议时间并不长。问题是我不确定哪些设置会“成功”
理想情况下,我正在寻找使会话持续 12 小时的正确配置。谁能帮我解决这个问题?
【问题讨论】:
【参考方案1】:session.gc_maxlifetime 以秒为单位,因此您设置的 1440 将在 24 分钟后过期。 (见:http://php.net/session.gc-maxlifetime)
对于 12 小时的课程,我相信您需要:
session.gc_maxlifetime = 43200
session.cache_expire = 720
session.cookie_lifetime = 0
【讨论】:
【参考方案2】:您是否也设置了 session.cookie_lifetime = 0 ? 并且可能在您的脚本或某些包含的脚本中的某个地方将会话生命周期设置为另一个值?
默认的“0”值表示 cookie 在浏览器关闭之前一直保持活动状态。如果没有在 php.ini 中设置,这也是默认值。 来源:http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime
【讨论】:
但我的应用程序并未隐式使用 cookie。我还需要那个设置吗?为什么它应该是0?还是应该把它从 0 改成别的? Cookies 用于存储一个小的会话标识符,因为 html 是无状态的。这样,Apache 可以请求 cookie,如果该 cookie 可用且仍然有效,并且它的会话 ID 仍然有效,它可以继续会话。【参考方案3】:看看:
session.cookie_lifetime x
其中 x 是以秒为单位的生命周期
此外,如果您在共享主机上,请确保 /tmp 下的会话数据不会被主机使用某种干净的脚本删除。一些主机每 10 分钟清除一次 /tmp。
【讨论】:
以上是关于Apache 使会话超时时间更长的主要内容,如果未能解决你的问题,请参考以下文章