すべてのアイテム /カートセッションをドロップするカートがクリアされます

magento.stackexchange https://magento.stackexchange.com/questions/385

  •  16-10-2019
  •  | 
  •  

質問

私が突然管理するサイト(2週間前に - GA統計から、現在報告されている場合のみ)は、カートを表示するときにカートのアイテムを削除し始めたり、チェックアウトに行ったりしました。

上部の「ミニカート」には、ドロップダウンのアイテムが表示され、カート/チェックアウトを閲覧してからカートに表示され、「カートにアイテムがありません」というメッセージが表示されます。

セッションの問題のようです。ログインしても起こりません。

「システム - > Web->セッション検証設定」のすべてのセッション検証オプションを削除し、「FrontEndでSIDを使用」と書かれたものを有効にしました。これは問題を解決しましたが、これらの設定は過去3か月間は変わらなかったため、根本的な問題があることを知っています。

これは、SORE-IDの問題で発行することを示していますか?どういうわけか、サイトはどの店舗を使用しているのかを失い、セッション/カートデータを削除していますか?多分いくつかのオブザーバー/イベント/いくつかのモジュールで書き直します。

Local DevまたはUATサーバーで問題を複製することはできません。 UATのDBはライブからの2週間のものです。これは、DBの問題/設定を指している可能性がありますか?

私が試みていること:私は現在のライブDBをUATに引き寄せて、その最新の状態を取得して、そこで問題を再現できるかどうかを確認するのに忙しいです。それが完了したら更新します。

非ライブエリアで問題を再現できたら、モジュールを体系的に無効にし、ストアIDで何かがマッキングされているかどうかを確認します(2週間前に更新されたので、MagemonkeyとSweettoothで始まります)

質問は - 他に何を試すことができますか?いくつかのブレークポイントを叩き、コードをステップで踏み込んで、この問題を追跡できるかどうかを確認できる場所へのポインターはありますか?

ワニスやMemcacheなどの追加のキャッシュシステムはインストールされていません。サーバーは標準のCPANELインストールです。 UATでテストして、すべてのキャッシュを無効にしました。

さらなる更新:デフォルトのテーマにドロップすると、再現できないように思われます。テーマを体系的に移動しているのは、フォルダーをオーバーライドしています。

また、Gitを使用してコードをバックトラックしましたが、問題はハッシュごとに残ります。

更新:これに費やす時間があったのでしばらく経ちました。高い作業負荷。

私はセッションをファイルベースに移動しましたが、問題はなくなりました。クライアントは近い将来に複数のサーバーを使用するつもりはないため、私の作業負荷により、これはそのままになりました。後で私を噛むために戻ってくるでしょう。

Magentoのサポートは、この問題はセッションクラスを拡張する甘い歯モジュールに関連していることを示唆しましたが、私はそのモジュールを無効にしており、問題は残っていました。

より多くの結果が得られたら更新します。

役に立ちましたか?

解決

CPANELボックスでは、不足している資産がMagentoページ全体を提供していました。

CPANELのデフォルトは次のとおりです ErrorDocument 404 /404.shtml しかし /404.shtml Magentoのドキュメントルートには存在しないため、.htaccessは再び実行され、リダイレクトされます /404.shtmlindex.php (mod_rewriteを使用)。

Magentoのデフォルト.htaccessは、404、500、およびその他のエラーハンドラーを明示的に指定する必要があります。

このBeahviourを修正するために、.htaccessに以下を追加しました。

ErrorDocument 404 /errors/404.php

おそらく500も追加する必要があります。

ErrorDocument 500 /errors/500.php

他のヒント

サーバーでワニスを使用していますか?

静的コンテンツ(画像/CSS/JS)を取得する前に、人々がCookieを剥がす多くの実装を見てきました - したがって、画像/JS/CSSが存在しない場合。 Magento Bootstrapと404をロードします - これはCookieとサイトのセッションを完全に剥ぎ取ります。

1つの問題は、Magentoが切り替えたときにセッションデータを保存していないことです。 httphttps. 。 SSLなどに必要な設定が適切にセットアップされていることを確認してください。

別の問題は、顧客のISPが文書化されているようにIPアドレスを変更していることです ここ.

この問題を修正するには:

Magento管理者のセッション検証設定を変更します。 システム>構成> Web, 、「いいえ」http_user_agentを検証します。」これを行った後、に行きます システム>キャッシュ管理 構成キャッシュを更新して変更を適用します。

特にヘッダーまたはフッターのすべてのページから画像が欠落している場合、ページに画像が欠落している場合、この問題を観察しました。 MagentoまたはWebServerのいずれかのいずれかがFrontend Session Cookieを破壊し、セッションの敗北につながる404ページのようです。修正すべきもののリストにありますが、回避策は、欠落している画像がないことを確認することです...

これは、Cookie/Serverの日付の問題である可能性があります。最初に確認するのは、Cookieヘッダーです。ヘッダーを検査します(Firebug、Charles、Fiddlerなどを使用してください)。

次のようなものが表示されるはずです。

Set-Cookie  frontend=9dhtlgf1qmo6loqksvvmqjd625; expires=Thu, 31-Jan-2013 05:01:13 GMT; path=/; domain=.foo.com; HttpOnly

期限切れのフィールドの値が過去にある場合、サーバーの時間が間違っている可能性があります。これは、NTPDのようなサービスが開始に失敗した場合に発生する可能性があります。その場合は、サーバーの時間を確認してください。時間がかかる場合は、NTPDのステータス(またはサーバーの時間を更新するためのデーモンサービス)のステータスを確認してください。

PHPガベージコレクション セッションを時期尚早にクリアしています。私はこれを自分で見ました 高トラフィックサイト.

いくつかのトラブルシューティングのヒント:

  • あなたの最古のセッションは何歳ですか?調べるには: ls -laht [mageroot]/var/session/ | tail - 数週間以上セッションがない場合は、ごみ収集が責任を負う可能性があります
  • たとえば、セッションを一時的に別のデータストアに移動します - mysqlまたはmemcached。問題は解決しましたか?
  • これは開発サーバーで起こっていますか?いいえであり、すべてのものが等しい場合、トラフィックレベルが時期尚早のセッションの満了またはゴミ収集をトリガーしている可能性があります

私はこれを2つの方法のいずれかで修正しました:

  1. .htaccessに追加してください php_value session.gc_maxlifetime 2592000
  2. php.iniで、sess.gc_maxlifetimeを設定します

もっと読む: http://www.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime

同様の問題がありました。私たちの場合、それはワニスの構成でした(Ben Lessaniのように - 提案していました)。ページに404エラーが発生した場合、サーバーがひどくハンマーされないように、120秒間404をキャッシュするためにワニスを構成しました。

そのため、404Sの問題は、MagentoがFrontendとFrontend_Cid Cookiesのヘッダーにセットクッキーで応答し、顧客セッションをリセットしました。

これに対する私たちの解決策は、404回の応答のためにセットクーキを剥奪することです。

unset beresp.http.set-cookie;

過去に私のためにPHPセッションを破った愚かなもので、チェックする価値があるかもしれません。

  • 完全なディスク
  • サーバー時間が不正確です
ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top