php - APC 开启时的 session 问题

标签 php apache session apc

当我们的服务器上启用 APC 时,PHP session 出现问题。

该应用程序在没有 APC 的情况下运行良好。然而,由于我们启用了 APC,当服务器负载过重时, session 似乎变得困惑,即用户随机登录为另一个。一旦我们禁用 APC,一切都会恢复正常。我们似乎找不到任何有同样问题的人,除了这些人的相关问题(set-cookie 被缓存在 MS ASP 中):http://msdn.microsoft.com/en-us/magazine/cc163577.aspx#S2

有没有人有类似的经历?你能推荐什么建议吗?

PS:我们所有的 session 都由 php.ini 中的文件处理。我们也在运行 apache2。

最佳答案

我们这里也有类似的问题。 APC 目前只是主要嫌疑人,因为它很难重现。

我们使用带 session 管理的 Zend Framework,理论上 Zend 的代码缓存在 APC 中,当系统负载严重时,代码使用以前缓存的 SID 而不是当前的 SID。

我们的保护措施是将 session ID 保存在 session 数据中,并在检索 session 时比较这些值。如果 ID 不同,我们将销毁 session 并退出。

关于php - APC 开启时的 session 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3547142/

相关文章:

php - 我正在开发 session 注册网络应用程序

javascript - 如何在不重新加载页面的情况下对数据进行分页?

apache - Xampp Localhost 上的 SSL 在 Windows 上使用 VirtualHost 重定向到 Xampp 默认信息/本地主机页面

session - 如何避免给定分布式架构的单点故障

php - 在 Windows 上的 php webservice 中保存图像时权限被拒绝

javascript - 更改 'option' 标记的值后的 Ajax 调用

regex - 用于更新 ssl.conf 中 SSL 证书文件路径的 Bash 脚本(RegEx 单词与 # 匹配)

php - 从数据库向 URL 添加值

java - GAE session 离线或在线的行为不同

php - 注销不会在 FOSUserBundle 中正确销毁/清除 session