【发布时间】:2012-09-04 02:29:53
【问题描述】:
总结: 在 PHP Symfony 1.4.8 上开发的应用程序会随机丢失 symfony 会话值,但仅限于特定的生产环境:array symfony/user/sfUser/attributes 在用户身份验证后几秒或几分钟内变空。开发机器或任何其他生产环境都不会出现问题。
问题似乎很明显是故障服务器特有的,但是,我想知道是否有任何我可能遗漏的 PHP / Apache / Symfony 配置可以解决故障服务器上的问题?
失败的服务器 PHP 信息:
- PHP 版本 5.3.10
- 系统 SunOS 5.10
- Apache/1.3.41 (Unix) PHP/5.3.10 mod_ssl/2.8.31 OpenSSL/0.9.8p
- 每个孩子的最大请求数:0 - 保持活动状态:开启 - 每个连接的最大请求数:100
- 超时连接:300 - Keep-Alive:15
- 会话支持:启用
- 注册的保存处理程序:文件用户 sqlite
- 注册的序列化程序处理程序:php php_binary
- session.cache_expire:180
- session.cache_limiter:无缓存
- session.cookie_lifetime:0
- session.gc_divisor:100
- session.gc_maxlifetime:1440
- session.gc_probability:1
- session.use_cookies:开启
- session.use_only_cookies:开启
工作服务器 PHP 信息:
- PHP 版本 5.2.17
- 系统 Linux 2.6.32.59-sg2 #3 SMP
- Apache/1.3.42 (Unix) mod_gzip/1.3.26.1a mod_auth_passthrough/1.8 mod_log_bytes/1.2 mod_bwlimited/1.4 FrontPage/5.0.2.2635 mod_ssl/2.8.31 OpenSSL/0.9.8e-fips-rhel5
- 会话支持:启用
- 注册的保存处理程序:文件用户 sqlite memcache
- 注册的序列化程序处理程序:php php_binary wddx
- session.cache_expire:180
- session.cache_limiter:无缓存
- session.cookie_lifetime:0
- session.gc_divisor:1000
- session.gc_maxlifetime:1440
- session.gc_probability:1
- session.use_cookies:开启
- session.use_only_cookies:关闭
所有环境下两台服务器的 Symfony 会话设置:
storage:
class: sfSessionStorage
param:
session_name: webapp
user:
class: myUser
param:
timeout: 7200
我已经检查过这个类似的问题Symfony 1.4 sessions randomly lost,但是我没有使用 sfMemcacheCache 类。
如果您可能需要任何额外信息来回答这个问题,请告诉我。
【问题讨论】:
-
您是否尝试过使用不同的存储类?以 sfPDOSessionStorage 为例
-
我们有同样的问题 - 但我们还没有定义 sfSessionStorage。
-
@j0k 不,我没有...会尝试并让您发布...
-
生产服务器只有一台,不是几台?
-
涉及到某种类型的平衡负载,所以我假设它可能不止一个......
标签: php symfony-1.4 session-timeout