2015-01-02 11 views
6

PHPを5.4から5.6にアップグレードしたので、私は奇妙な問題を抱えています。私は自分自身でこのエラーを見たことはありませんでしたが、ログには毎日次のメッセージが表示されます。PHP 5.6セッション+ Memcache(d)

session_write_close():セッションデータ(memcached)の書き込みに失敗しました。 session.save_pathの現在の設定が正しいことを確認してください(127.0.0.1:11211)

これは常に発生するものではありませんが、特定のユーザーのみに発生します。これは、PHP〜5.6を持つ3つの異なるサーバで発生します。&最新のDebianでMemcached MemcacheにMemcached拡張機能を切り替えようとしましたが(もちろんphp.iniのsave_handlerを変更しています)、問題は依然として残っています。私もphp.iniでセッションロックを無効にしようとしました。 Memcachedデーモン自体をPerlスクリプトでテストしたので、問題はPHPとまったく関連していました。単一の接続エラーはありませんでした。

非常に長い間すべてがうまくいっていて、PHPのアップグレード直後にこの問題が発生し始めたので、memcached設定などとは関係ありません。多分私は何かを見逃しているでしょうか?おそらく5.6では、iniファイルにいくつか追加の設定が必要なのでしょうか?私はそれを把握できません。

私はちょっと立ち往生しています。誰も助けを借りて助けてくれることを願っています。私は5.4、5.5への切り替えを試みることができますが、それは本当にオプションではありません。私は本当に5.6に固執したいと思います。

+0

。6は理想的ですが、しばらくの間5.5に戻すのは大きな難しさですか?あなた自身のバージョンをコンパイルして、同じ問題を抱えているかどうかを確認するために、ボックスのApache設定でそれを切り替えることができます。プライマリ5.6バージョンに戻すのは簡単です。 – halfer

答えて

0

あなたがphp.iniでセッションがこれに似ていることを確認してください。

session.save_path = "tcp://127.0.0.1:11211" 

またはUNIXソケットの

session.save_path = "unix:///var/run/memcached.sock" 
1

memcachedをPHP 2拡張、メモリキャッシュがあります。

memcached拡張子はlibmemcacheに基づいているため、いずれにしてもその拡張子を使用する必要があります。

私の経験では、現在のバージョンのmemcacheデーモンは、memcache拡張子でうまく動作しませんでした。データの保存はできましたが、最初のリクエスト後にセッションにデータを書き込むためのパフォーマンス上の問題が発生しました(完全に新しいセッションの最初のリクエストはきれいで速く、その後のリクエストはすべて10秒かかる)。 memcachememcachedに置き換えると、この特定の問題が修正されました。

警告 memcachedをためsession.save_pathの構文は少し違っていました。私はtcp://をOMMITしなければならなかったか、それは、memcachedを使用するためので

を動作しないでしょう。

session.save_path = "127.0.0.1:11211" 

そしてmemcacheの使用するために:もちろん5

session.save_path = "tcp://127.0.0.1:11211" 
関連する問題