当我们的服务器上启用 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/