P粉7978557902023-09-01 15:45:09
もう 1 つのオプションは、memcached を削除し、セッション ストアの代わりにメモリ常駐の
sqlite3 データベースを使用することです。本番環境でのパフォーマンスはこれらの間でそれほど変わらないと思います。二つの状況。
P粉7627302052023-09-01 11:17:20
AWS ElastiCache Memcached クラスターを使用している場合は、構成 $config['sess_save_path']
で使用したエンドポイントを確認してください。 1 つのオプションは、構成エンドポイント (.cfg.
を含む) または個別のノード エンドポイント (.0001.
、.0002.
を含む) を使用することです。 。構成エンドポイントを使用する場合は、自動検出が有効になっていることを確認してください (サーバーに追加のインストールが必要です - ElastiCache Cluster Client for PHP)。有効になっていない場合、ノードは正しく解決されず、このような問題が発生します。
これが私の場合に当てはまることがわかりました。セッション start、regenerate、destroy でメッセージをログに記録しようとしましたが、ファイル ドライバーでは再生成が行われますが、memcached では関数を呼び出すことさえありません。 session_start()
。いくつかの調査の後、ホストを再確認することにし、AWS で このガイドを見つけました。問題が始まったとき、2 番目のノードが Memcached クラスターに追加されましたが、この Autodiscover を設定せずに構成エンドポイントを使用していたことがわかりました。セットアップがどのように機能するかまったくわかりません。そこで、$config['sess_save_path']
をいずれかのノードのエンドポイントに変更したところ、問題は解決しました。このソリューションは、必要なモジュールをインストールしてセットアップするまで、ノードが変更されない限り機能するはずです。