【发布时间】:2012-06-11 01:26:11
【问题描述】:
我目前正在开发一个在 Amazon EC2 上运行的 Facebook 应用程序。该应用程序正在运行并且大部分开发已完成,但是我们无法让会话持续存在。我们使用 PHP 会话 save_path 技巧尝试了 PHP 默认会话处理、数据库处理和内存缓存处理。我们尝试过使用 auto_start 等 ini 设置,但无济于事。
奇怪的问题是初始会话写入确实写入,但第一次之后的任何后续写入都不会保存。我们可以看到会话 cookie 持续存在,但数据的实际写入总是在第一次写入后失败。这个奇怪的问题适用于我们使用的任何会话处理程序。
我们的 EC2 设置如下:
- 开发:1 个 64 位 linux 服务器、1 个 mongodb 服务器、1 个 elasticache 集群
- 暂存:1 个 64 位 linux 服务器、1 个 mongodb 服务器、1 个 elasticache 集群
- 产品:2 个 64 位 linux 服务器和 1 个负载平衡器,3 个 mongodb 服务器和副本集,2 个弹性 ache 集群
会话问题在所有环境中都可以重现。由于我已经尝试了我所知道的所有内容以及在谷歌搜索时发现的所有内容,因此我的想法已经不多了。
作为参考,我们使用的是 CakePHP 2.1,但也尝试过 CakePHP 之外的会话。
【问题讨论】:
-
你能发布你最简单的可重现代码吗?似乎没有其他人遇到同样的问题,所以它很可能是您的代码中的问题。
标签: php session amazon-ec2 amazon persist