摘要:在 PHP Symfony 1.4.8 上开发的应用程序会随机丢失 symfony 会话值,但仅在特定的生产环境中:数组 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 - 保持活动: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 random lost,但是我没有使用 sfMemcacheCache 类。
如果您可能需要任何额外信息来回答这个问题,请告诉我。