2012-09-04 62 views
3

摘要:在PHP 1.4.8的Symfony開發應用程序失去symfony的會話值隨機而僅僅在特定的生產環境:陣列的symfony /用戶/ sfUser /屬性內變空用戶驗證後的秒數或分鐘數。問題不會發生在開發機器或任何其他生產環境中。Symfony的會話價值觀迷失特定服務器上

這似乎很清楚,問題是特定於故障服務器,但是,我不知道是否有任何PHP/Apache/Symfony配置我可能會錯過,可以解決故障的服務器上的問題?

故障的服務器PHP信息:

  • PHP版本5.3.10
  • 系統的SunOS 5.10
  • 的Apache/1.3.41(Unix的)PHP/5.3.10的mod_ssl/31年2月8日的OpenSSL /0.9.8p
  • 最大請求每個兒童:0 - 保持活動:對 - 最大每連接:100
  • 超時連接:300 - 保持活動:15
  • 會話支持:啓用
  • 登記保存處理程序:文件用戶的SQLite
  • 註冊串行處理:PHP php_binary
  • session.cache_expire:
  • session.cache_limiter:非緩存
  • session.cookie_lifetime:
  • session.gc_divisor:
  • 的session.gc_maxlifetime:
  • session.gc_probability合:
  • session.use_cookies:
  • session.use_only_cookies:

工作服務器PHP信息:

  • PHP版本5.2.17
  • 系統的Linux 2.6.32.59-SG2#3 SMP
  • 阿帕奇/ 42年3月1日(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的內存緩存
  • 註冊串行處理:PHP php_binary WDDX
  • session.cache_expire:
  • session.cache_limiter:nocache
  • session.cookie_lifetime:
  • session.gc_divisor:
  • 的session.gc_maxlifetime:
  • session.gc_probability合:
  • session.use_cookies:
  • session.use_only_cookies:Off

Symfony的會話設置在所有環境中兩個服務器:

storage: 
    class: sfSessionStorage 
    param: 
     session_name: webapp 

    user: 
    class: myUser 
    param: 
     timeout: 7200 

我已經檢查過這類似的問題Symfony 1.4 sessions randomly lost,但是我沒有使用sfMemcacheCache類。

讓我知道你是否需要任何額外的信息來回答這個問題。

+0

您是否嘗試過使用不同的存儲類?像sfPDOSessionStorage,例如 – j0k

+0

我們有同樣的問題 - 但我們沒有定義sfSessionStorage。 –

+0

@ j0k不,我沒有...會嘗試,並讓你張貼... – JLCG

回答

0

你可能需要在你的factories.yml文件中設置下面的設置爲:

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

&然後刪除您cache &重新加載網站和SESSION COOKIE將保持活躍的1個月。