3

概要: PHP Symfony 1.4.8で開発されたアプリケーションは、symfonyセッション値をランダムに失いますが、特定の本番環境でのみ失われます。ユーザー認証後、数秒または数分以内に配列 symfony / user / sfUser/attributesが空になります。開発マシンやその他の実稼働環境では問題は発生しません。

問題が障害のあるサーバーに固有のものであることは明らかなようですが、障害のあるサーバーで問題を解決できるPHP / Apache / Symfonyの構成が欠落している可能性があるのではないかと思いますか?

障害のあるサーバーPHP情報:

  • PHPバージョン5.3.10
  • システムSunOS5.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: 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バージョン5.2.17
  • システムLinux2.6.32.59-sg2#3 SMP
  • Apache / 1.3.42(Unix)mod_gzip / 1.3.26.1 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

私はすでにこの同様の問題をチェックしました。Symfony1.4セッションはランダムに失われましたが、sfMemcacheCacheクラスを使用していません。

この質問に答えるために追加情報が必要な場合はお知らせください。

4

2 に答える 2

0

これはおそらくチェックすべき明らかなことですが、サーバーのディスク容量が不足している可能性がありますか?

デフォルトのセッション ストアはファイル ベースであるため、ランダムにデータが失われている場合は、ハード ドライブまたはファイル システムに問題があるように思えます。

それでも興味がある場合は、セッションが保存されている場所を別の場所(できれば別のディスク) に変更してみてください。

于 2012-11-27T16:28:11.840 に答える