管理ページの致命的なエラー


15

magento 1.7をインストールしましたが、今までは正常に機能していました。

私は毎日製品を輸入しています。新しい製造元がある場合は、ドロップダウンベースの製造元属性に追加します。

今日、属性のバックエンドに新しいメーカーオプションを追加し、製品のインポートに成功しました。

しかし、その後、Magento管理サイトのページを開こうとすると、次のエラーメッセージが表示されます

致命的なエラー:36行目の/var/www/html/app/code/core/Mage/Catalog/Model/Category.phpにある最終メソッドMage_Core_Model_Abstract :: clearInstance()をオーバーライドできません

このクラスのライン36はちょうどカーリーから始まっ{ています

class Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract
{ <-- this is line 36

そして、私がチェックしたMage_Catalog_Model_Categoryが、名前で定義された方法はありませんclearInstance。それは本当に迷惑です。

参考までに、製品のインポートと必要な属性の追加にADMINサイトを使用しているだけのコードの1文字には触れませんでした


なぜ-1ですか?私は人々を助けるためにここにいます。Magentoについて質問する場所ではありませんか。
日光

-1について、人々は奇妙な反応をすることがあります...あなたの問題については、エラーメッセージに書かれています。ただ読んでください。「最終方法を無効にすることはできません...」。できないもの(あなたまたはそれを
不適切にコーディングした人

@SylvainRayé:コードの1文字にも触れていませんでした。質問を読みましたか。製品をインポートするためにADMINサイトを使用しています。エラーをスローしているのはMagentoで、コードを間違ってコーディングしているのはMagentoです
日光

@SylvainRayé:このエラーは、あなたが思っているほどライトではありません。特にコアコードから来たとき、そしてコードに触れないときでさえです。
日光

このコミュニティでは、投票権のない妖精はかなり攻撃的です。無視してください。サードパーティの拡張機能がクラスを拡張または上書きすることで問題を引き起こす場合があります。試してみて、それが助けかどうかを確認するために、すべての第3回パーティの拡張機能を無効にする
サンダーMangel

回答:


5

この動作は、Magentoのコードを何らかの方法で変更しない限り、通常は発生しません。サードパーティの拡張機能、コアコードの編集、または一般的なカスタマイズによるものです。

データモデル(製品グリッドなど)が実際に読み込まれる前に管理者で発生するという事実は、インポートされたデータではなく、拡張機能によって引き起こされていることを意味します。

それは製品グリッドで発生していました-インポートの失敗の結果として障害が発生した製品モデルである可能性があります。

しかし、クイック検索の後、同じエラーが発生したMagentoストアのGoogle検索結果のインデックスが多数あります。したがって、それはコアにある可能性があります(ただし、私たちはこれに出くわしたことはありません)-しかし、私は疑っています。

1.7のコアを見る

+34 abstract class Mage_Catalog_Model_Abstract extends Mage_Core_Model_Abstract
+35 {
+36     /**
+37      * Identifuer of default store

clearInstance()メソッドをオーバーライドしないでください。実際、このメソッドは一度だけ宣言されます。app/code/core/Mage/Core/Model/Abstract.php

final public function clearInstance()

この性質のエラーは、人々が誤っincludeてオーバーライドされたクラスを使用したときに発生します(その結果、クラスが2回ロードされます)。


最適なオプションは、標準のデバッグ手順に従うことです

  1. きれいなコアを復元する
  2. クリーンなadminhtmlディレクトリを復元します
  3. ./app/code/localディレクトリの名前を変更
  4. ./app/code/communityディレクトリの名前を変更

そして、問題が解決しないか確認してください。


3

ここでの問題はAPCにあり、APCを無効にすると問題はなくなります。


APCを無効にするオプションはありません。しかし、良いアイデアです!私はこれを決して考えません!@sunlightには複数のmagentoがインストールされていますか?同じプレフィックスを定義しましたか?同じキャッシュ内の別のストアに問題がある可能性があります。
ファビアンBlechschmidt

3

この特定のエラーのPHP標準に従って:

致命的なエラー:36行目の/var/www/html/app/code/core/Mage/Catalog/Model/Category.phpにある最終メソッドMage_Core_Model_Abstract :: clearInstance()をオーバーライドできません

それは明らかにあなたがMage_Core_Model_Abstract使用してクラスを拡張したことを意味します

class Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract

そしてこのクラス内でclearInstance()関数として定義しました。

clearInstance()あなたが拡張クラスのいずれかでこの機能を変更することが許可されていないので、機能最後の関数です。

36行目と想定する行の上下にダミーコードを追加することで、36行目を正確に把握できます。

開発者が特定のフォルダー内のファイルを変更したり調べたりするのを見たことがあります。コンパイラーと同様に、真のphpクラスファイルが他のフォルダーに設定されています。


チェックしましたが、clearInstancein localcommunitypool という名前のメソッドはありません。ただし、問題を一時的に解決するために関数宣言から最終キーワードを削除しましたが、関数finalの前にキーワードを追加し直しても、まだ正常に機能しているのは面倒です。
日光

Sonassiが述べているように、おそらくあなたのクラスは2回インクルードされます:オーバーライドされたクラスに対して誤ってincludeを使用すると、この性質のエラーが発生します(結果として2回ロードされます)。
-Oscprofessionals

2

異なるMagentoバージョン(フロントエンドエリア)の最新のPHP 5.4バージョンでも同じ問題が発生し、コードまたはキャッシュでこれを解決できませんでした。バージョンを確認しましたか?

この場合、以前のバージョンへのロールバックは試してみる価値があります。


2

これを経験したところ、非常によく似た設定を示す未確認のバグ投稿が見つかりました。

これは、次の組み合わせのバグのようです。

  • PHP 5.4.12+
  • Magento 1.7.x(1.13.x EE)
  • APC(3.1.x)

Apache error_logにAH00052が表示される:子pid XX終了シグナルセグメンテーションエラー(11)

現時点での問題に対する2つの最良の解決策は次のとおりです。

A) PHPを5.4.11以前の可能性のある下位バージョンにダウングレードします。

B) APCを無効にします。可能な場合は、Aを参照してください。


MariaDB、Magento 1.7.0.2、APCなしのPHP 5.3.27で同じ問題が発生しています。ImもVarnish + nginxを使用しています。時々php-fpm、ニス、nginxなどを強制的に再起動する断続的な問題。ところで、どこでも宣言されているコア以外のclearInstanceメソッドは見つかりませんでした。クラスを2回含むものがあるかもしれません。しかし、奇妙なことです。もしそれがパーサーエラーであれば、それは毎回起こるからです。
リカルドマルティンス

1

PHPの実行方法を切り替えることで、Magento 1.9のこの問題を解決しました(ホスティングコントロールパネルでは、PHPを...として高速CGIアプリケーションに切り替えました)。この変更が他にどのような結果をもたらすかは、まったくわかりません。現時点でそれを理解しようとしています。


0

私は同じ問題を予期していました。コアプール以外のどこにもclearInstanceメソッドの宣言はありませんでした

私はnginxのaccess.logとerror.logを分析し、GoogleとBingのボットが異なるURLで数分以内に私のサイトに1000回アクセスすると、これらのエラーが表示され、magentoから多くのリクエストとクエリを行うことに気付きました。このことは私のサイトをダウンさせます。

グーグルからクローラーのパワーを減らし、ウェブマスターのパネルでビンビンにすることでそれを修正したと思います。

あなたは使用することができますGoAccessまたは要求のログアナライザをログファイルを分析するために、トップの訪問者のユーザーエージェントを参照してください。

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