Symfony会话值在特定服务器上丢失

时间:2012-09-04 02:29:54

标签: php symfony-1.4 session-timeout

摘要:在PHP Symfony 1.4.8上开发的应用程序会随机丢失symfony会话值,但仅限于特定的生产环境:数组 symfony / user / sfUser / attributes 在用户身份验证后的几秒或几分钟内变空。在开发机器或任何其他生产环境中不会发生问题。

似乎很清楚问题是特定于失败的服务器,但是,我想知道是否可能有任何PHP / Apache / Symfony配置我可能会丢失,可以解决故障服务器上的问题?

服务器PHP信息失败:

  • PHP Version 5.3.10
  • System 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: nocache
  • 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 Version 5.2.17
  • System 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: nocache
  • 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类。

如果您需要任何额外信息来回答此问题,请与我们联系。

2 个答案:

答案 0 :(得分:0)

这可能是一件显而易见的事情,但可能服务器的磁盘空间不足?

默认会话存储是基于文件的,所以如果你随机丢失数据,听起来好像你有一些硬盘/文件系统问题。

如果您仍然很好奇,可以试试changing the location where sessions are stored to another location,希望在不同的磁盘上。

答案 1 :(得分:0)

您可能需要在factories.yml文件中将以下设置设置为:

  storage:
    class: sfSessionStorage
    param:
      session_name: webapp
      session_cookie_lifetime: 2678400 # number of seconds for 1 month

&安培;然后删除您的cache&重新加载网站,您的SESSION COOKIE将保持有效状态1个月。