ライブサイトはフロントエンドで空白であるか、ロードし続けてロードしない


23

私は今までにMagentoで奇妙な問題に直面しています。1.9.0バージョンを使用しています。

過去2か月間、私たちのライブサイトは使用済みのブラウザに対して「空白」または「読み込みを維持」しています。このブラウザでは、何度もサイトにアクセスしました。

一部のブラウザでは、正常に動作します。いくつかの空白を示しています。

しかし、バックエンドはすべてのブラウザで正常に機能しています。

クロム、モジラ、オペラ、その他すべてのブラウザで問題に直面しています。

1)ブラウザの履歴[キャッシュとCookie]をクリアすると、動作しなくなります。

2)同じウィンドウをプライベートウィンドウで開くと、その機能が動作します。

3)新しくインストールしたブラウザでサイトを開くと、しばらく動作します。サイトを使用した後は再び空白になります。

4)var / sessionフォルダーをクリアすると、しばらくの間すべてのブラウザーで機能し始めます。再びサイトの空白。

5)時々、サイトはロードし続け、ロードされません。...

system.logとexception.logを確認しました。しかし、これに関連するエラーはないようです。安全なページにhttpsを使用しています。このサイト用のAndriodアプリもあります。時には致命的なエラーが発生します:

**Fatal error**: Allowed memory size of 536870912 bytes exhausted (tried to allocate 85 bytes) in /lib/Zend/Db/Statement/Pdo.php or lib/Varien/Object.php or /lib/Varien/Db/Select.php or app/code/core/Mage/Core/Model/Config.php

php.iniでmemory_limit = 1512 Mbを設定します

.htaccess私たちは、ファイルを次のようしています。

php_value memory_limit 1512M php_value max_execution_time 18000

これのコメントを外しました:

ini_set('display_errors', 1);

ただし、フロントエンドにエラーは表示されません。これはApacheエラーログです:

子pid 23845終了信号セグメンテーションエラー(11)、/ etc / apache2にコアダンプの可能性あり

この問題の解決に本当に苦労しています。この問題はコードに関連するものですか、それともサーバー側に関連するものですか?

ブラウザのクッキーは主な問題ですか?その場合、すべてのブラウザーでこのCookieの問題を解決するために何をする必要がありますか。セッションフォルダーをクリアすると、なぜ機能し始めたのですか?

サイトを閲覧するときにこれらの問題に直面します。 ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください


Cookieの問題である可能性はありますか?stackoverflow.com/questions/15491819/...
pzirkind

私が貼り付けられたリンクは、バックエンドのためですが、フロントエンドには、クッキーの問題も...それはクッキーの寿命が原因である可能性があり、サーバのタイムスタンプがオフになっていて
pzirkind

私たちのケースでは、@ pzirkindはすべてのブラウザで問題ありません。コードを使用してCookieの有効期間を延長する必要がありますか?そして、サーバーのタイムスタンプがオフになっていることはわかりませんでした。私たちはそれを作る必要がありますか?
赤ちゃんのMagento

Magentoの中@Babbyは時々サーバは、それが現在の日付より前に期限が切れるクッキーを生成します正しいタイムスタンプを持っていない場合、そのとき、顧客のリロードサイトとMagentoのチェッククッキーの無効
pzirkind

@pzirkind質問またはタイムスタンプで投稿されたApacheエラーがこの空白ページの理由である可能性はありますか?
赤ちゃんのMagento

回答:


10

最初に.htaccessファイルで開発者モードを有効にし、ファイルの最後に次を追加します。

SetEnv MAGE_IS_DEVELOPER_MODE "true"

次にindex.php、行を編集してコメント解除します。

#ini_set('display_errors', 1);

参照されている行:

次に、SSH経由でログインし/tmp、セグメントフォールトエラーの説明に従って、コアダンプファイルを探します。場合によっては、ルート/またはサイト自体のルートディレクトリにもある場合があります/var/www/html/videomergerapp/

コアダンプファイルが見つからない場合は、PHP / Apacheにいくつかのディレクティブを追加することをお勧めします。

ここを見てください:

コアダンプファイルを取得しgdbたら--enable-debug、PHPの構成時に使用された(if )を使用できます。コマンドラインから次を発行することにより、この決定を行うことができます。

php -i | grep debugまたは、次のコマンドを使用してWebサーバーのルートにphpスクリプトファイルを作成します。<?php phpinfo(); ?>その内容をWebブラウザーで表示して、PHP構成値を確認します。

有効になっていない場合、PHP自体に完全なバックトレースを取得することはできませんが、より高いレベルのシステムコールおよび/またはApacheバックトレースのみを取得できます。

コアダンプファイルにアクセスして、次のようなものを発行すると、障害箇所を見つけるのに役立つバックトレースが得られます。

gdb /usr/local/apache2/bin/httpd /tmp/core.2027


フロントエンドでランダムな問題のみが発生し、バックエンドでは発生しない場合、ほとんどの兆候はテンプレートコーディングで発生する可能性のある問題を示しています。空白のページが表示されたら(および/または開発者モードとエラー表示を有効にしている場合はエラーが表示されます)。管理者にログインして、すべてのキャッシュを無効にし、すべてのキャッシュとキャッシュストレージをフラッシュします。

次にapp/etc/local.xml、ローカルモジュールの無効化をtrueに設定します。

<disable_local_modules>true</disable_local_modules>

これにより、オートローダーがのモジュールをロードできなくなりますapp/code/local

コミュニティモジュールを無効にするにはapp/etc/modules、次のようにアクティブノードをfalseに設定して、無効になっている各モジュール定義ファイルを確認するのが最も簡単です。

<active>false</active>

このようにして、サードパーティのモジュールが消去プロセスによって問題の原因を引き起こしているかどうかを除外できます。注:disable_local_modulesすべてのNON-COREモジュールを実行することはできません(Mage_ *は無視してください)。

それでも問題がある場合は、[システム]> [設計]に進み、デフォルトまたはベースなどの新しいデザインを定義することにより、デフォルトのテンプレートパッケージを一時的に試行します。ストックテンプレートパッケージが機能する場合、エラーの原因がテンプレートデザインファイル(.phtml)にあることがわかります。

私が遭遇した多くのテンプレートは、Mage::getModel()->load()foreachループ内で使用するのは良くありません。これは悪い習慣であり、最終的に大量のサーバーメモリとリソースを消費する可能性があるからです。

Magentoには、テンプレートファイルをスキャンして、これらの不良コードの有無を判断するのに役立つコード分析ツールがあります。

参考文献:

また、使用しているキャッシュとセッションストレージがで定義されていることは、誰にとっても役立つかもしれませんapp/etc/local.xml

お役に立てれば!


私は....これは、あなたが知っているようNADしようとします
Magentoの中で赤ちゃんを

var / sessionフォルダーをクリアしました。今日まで私たちの問題を解決しました。しかし、今日、この問題は再び起こりました。私はこれを.htaccessに追加しました:SetEnv MAGE_IS_DEVELOPER_MODE "true"およびini_set( 'display_errors'、1);のコメントを外します この行。および<disable_local_modules> true </ disable_local_modules>。:私はtjisエラーだよりmagento.stackexchange.com/questions/94559/...
Magentoの中で赤ちゃんを

セッションを自動的にクリアすると、すべての問題が解決します。クッキーやセッションに関連するものだと思いませんか?これを解決する方法はありますか?
赤ちゃんのMagento

@BabyinMagento提供された情報に基づいて問題を解決できましたか?もしそうなら、同様の問題を経験している他の人にとって問題は何でしたか?ありがとう。
B00MER

1
あなたのサポートに感謝します。セッションフォルダをクリアし、varien.phpでCookie関連のものを非表示にしました。それでも、永続的な解決策が得られたかどうかを確認するために、もう少し待つ必要があります。セッションフォルダーをクリアすると、解決策が得られました。
赤ちゃんのMagento

3

私の推測では、コードに再帰があります。編集したファイルlib/Varien/Db/Adapter/Pdo/Mysql.phpとセット$_debug$_logCallStacktrueに。これにより、コールスタックがvar/debug/pdo_mysql.logファイルに記録され、ロードに永遠にかかるときにコードに再帰があるかどうかがわかります。このファイルは非常に急速に成長し続けるため、問題がサイトで始まったと思われる場合は理想的に有効にしてください。

他の方法は、これを引き起こす可能性があると思われるバグのあるモジュール/拡張機能を無効にすることです。これは単純な設定可能な価格拡張でもあります。一時的に無効にして、問題の防止に役立つかどうかを確認してください。


「$ _debug」と「$ _logCallStack」の値をtrueに変更しました。今はpdo_mysql.logファイルを待っています。ログフォルダーがいっぱいになりすぎて、約90 GBのログがあります。私は2週間前に簡単な構成可能な拡張機能をインストールしましたが、この問題は2か月前からありました。ただし、他のバグのあるモジュールを調べる必要があります。
Magentoの赤ちゃん

今までこのファイルvar / debug / pdo_mysql.logを見つけませんでしたが、システムおよび例外ログが作成されました。私は主にこのログを見ることができます:「libに/ Varien / SimpleXMLは/ config.phpの行510の」
赤ちゃんのMagentoの中で

90 GBのログ?うわー!それらを別の場所にバックアップし、ファイルを空にします。これにより、サイトの速度が多少向上します。
カルペシュ

はい、あなたは正しいです。しばらくしてから削除を続けます。これらのログはこの問題のためですか?そして今まで私はpdo_mysql.logを見つけませんでした
Magentoの赤ちゃん

$_debugFileMysql.phpファイルのの値を確認varし、フォルダーとファイルの作成に必要な適切な権限がディレクトリにあることを確認してください。
カルペシュ

2

顧客のWebサイトでも同じ問題が発生しました。Magentoでマルウェアを確認してください。

これはよく知られたシナリオです。通常は、ユーザーの投稿のコンテンツを外部のWebサイトにリダイレクトするウォールウェアです。

index.phpのチェックを開始すると、通常はハッキングされます。コードを最後までスクロールし、ライセンスヘッダーの右側とコメント行の間を確認します。ハッカーは、この方法でコードを隠すために使用されます。

ISPがブロックしたWebサイトに接続しようとするため、「永久にロード」されます。

マルウェアの検索、「base64」、「eval」、「mcrypt」文字列の検索は非常に簡単です。



私たちのサイトは3か月前にハッキングされ、その後、この問題のみが発生しました。しかし、後でサーバー側から多くのセキュリティ対策を講じました。しかし、ハッキングされたコードはまだサイトに存在し、問題を引き起こしていると思いますか?
Magentoの赤ちゃん

index.phpは問題ありませんが、お客様のハッキングされたWebサイトで見た症状は本当に似ています。「base64」、「eval」、「mcrypt」、「$ _ POST」のパターンを探して全検索を実行することをお勧めします。大量の誤検知が発生するため、確認する必要があります。間違った点が見つからない場合は、キャッシュグラインド分析またはxdebugの段階的な分析をお勧めします。
Phoenix128_RiccardoT

サイトファイルでこれらの単語を検索します。
Magentoの中に赤ちゃんの

私は無制限の時間を見つけています:「base64」はテキストをエンコードおよびデコードします........
Magento in

2

2つのWebサイトがあるMagentoで同様の動作を経験しました。このサイトは、数ページにわたって適切にロードされ、その後ずっとロードされていました。

ベースURLの構成が間違っていました。安全でないベースURLが正しく設定されている間に、安全なベースURL設定が間違ったWebサイトに設定されました。

管理者が適切に動作しない場合でもこれを修正するには、適切なWebサイトのcore_config_dataテーブルで値を変更する必要があります。つまり、「http://」と値フィールドのWebサイトIDを表す正しいscope_idのパス「web / unsecure / base_url」および「web / secure / base_url」。

ここに画像の説明を入力してください

セキュアなURLは、デモWebサイトであるため、httpのみであることに注意してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.