Wir haben versucht, unsere Magento-Installation von 1.7.0.2 auf 1.8.0.0 zu aktualisieren. Jetzt haben wir auf allen Seiten den folgenden Fehler:
Fatal error: Call to a member function rewrite() on a non-object in /home/clientname/domains/domain.com/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php on line 165
Wir haben versucht, alle Caches zu löschen, den Compiler zu deaktivieren und neu zu kompilieren und den Indexer neu zu indizieren. Früher ging heute alles gut auf unserer lokalen Installation. Dies ist die gleiche Installation mit Ausnahme einiger Bestellungen und Kundendaten.
Wenn der Compiler aktiviert ist, ändert sich der Fehler in:
Fatal error: Call to a member function rewrite() on a non-object in /home/clientname/domains/domain.com/public_html/includes/src/__default.php on line 17761
Wie können wir diesen Fehler beheben?
ce-1.7.0.2
upgrade
ce-1.8.0.0
Michael
quelle
quelle
Antworten:
Betrachte Zeile 165
Die Methode
_getRequestRewriteController
sollte ein Objekt zurückgeben. Aus irgendeinem Grund wird kein Objekt in Ihrem System zurückgegeben.Wenn wir uns diese Methodendefinition ansehen, sehen wir Folgendes
Mage untersucht den
global/request_rewrite/model
Konfigurationsknoten, um einen Klassenalias zu finden. In einem Store-System sollte dies seinWelches Magento dann verwendet, um ein Modell zu instanziieren. Meine zwei Vermutungen sind
Es gibt hier ein Modul mit einem anderen, ungültigen Klassennamen, der verhindert, dass Magento das Objekt instanziiert.
In Ihrem System fehlt die
Mage_Core_Model_Url_Rewrite_Request
Klassendatei (atapp/code/core/Mage/Core/Model/Url/Rewrite/Request.php
), die in Magento 1.8 neu istquelle
Ich hatte das gleiche Problem und neben dem Leeren des Cache musste ich die Ordnerberechtigungen für / var und Unterverzeichnisse auf 777 setzen (keine Sorge, die .htaccess-Datei in / var verhindert, dass alles "menschlich" lesbar ist).
quelle
var
Ordner ändern , was bedeutet, dass Magneto möglicherweise auf einen System-Var-Ordner zurückgreift, der eine alte zwischengespeicherte Konfiguration aufweist.Wenn Sie einen Cache-Server wie memcached haben, versuchen Sie, ihn ebenfalls neu zu starten. Ich hatte das gleiche Problem und habe es so gelöst.
quelle
redis-cli flushall
Cache löschen;
Sein gelöstes Problem.
quelle
Ich habe versucht, der Erklärung von @AlanStorm zu folgen, fand aber letztendlich, dass es sich um ein Caching-Problem handelte. Ich musste einfach
rm -rf *
alle Dateien rein~/public_html/var/cache
und fand, dass die Seite korrekt geladen wurde.quelle
Ich habe das gleiche Problem
Das Löschen aller Dateien in / var / cache löst das Problem
quelle
Das Löschen von allem in var / cache löste das Problem auch für mich.
Außerdem musste die Datei maintenance.flag gelöscht werden, bevor dieses Problem auftrat, da eine Wartungsseite vorhanden war.
quelle