Ich habe mehrere Artikel dazu verfolgt, aber keiner löst mein Problem. Jede Anforderung vor Ort schreibt den folgenden Eintrag in das Systemprotokoll.
var/log/system.log
::
2013-10-09T12:53:50+00:00 ERR (3): Warning: include(File.php): failed to open stream: No such file or directory in /var/public_html/domain.com/live/lib/Varien/Autoload.php on line 93
2013-10-09T12:53:50+00:00 ERR (3): Warning: include(): Failed opening 'File.php' for inclusion (include_path='/var/public_html/domain.com/live/app/code/local:/var/public_html/domain.com/live/app/code/community:/var/public_html/domain.com/live/app/code/core:/var/public_html/domain.com/live/lib:.:/usr/share/pear:/usr/share/php') in /var/public_html/domain.com/live/lib/Varien/Autoload.php on line 93
Ich habe Artikel gesehen und befolgt, die darauf hinweisen, dass dies mit dem Compiler zusammenhängt.
Was ich bisher gemacht habe
Ich habe die beiden Zeilen in kommentiert includes/config.php
.
Löschte den Profiler vom Terminal gemäß dem Artikel von Herrn Storm: Magento Compiler .
Stellen Sie sicher, dass die Caches geleert sind und die Indizierung mehrmals ausgeführt wurde.
Verglich eine Vanille-Kopie von 1.7.0.2 CE und suchte nach Dateien, in denen möglicherweise meine eigene Codebasis fehlt (mit WinMerge).
Symlinks in admin deaktiviert.
Die Dateiberechtigungen wurden auf verschiedene Empfehlungen und wieder zurück geändert.
Ich habe auch festgestellt, dass die Profiler-Seite in admin unter Admin > System > Tools > Compilation
vollständig leer ist, abgesehen von Navi und Fußzeile.
Jede Hilfe, wo bis jetzt, wäre sehr dankbar. Bitte fragen Sie, ob etwas unklar ist. Vielen Dank!
quelle
/lib/Varien/Autoload.php on line 93
und benutze MagiermageDebugBacktrace()
(es ist eine Funktion, also rufe sie direkt auf). Sehen Sie, woher diese File.php stammt. Verwendenif ($class === 'File') { mageDebugBacktrace(); }
Sie diese Option, damit nicht bei jedem automatischen Laden der Klasse gedruckt wird. Ich hatte ein ähnliches Problem mit dem PHPUnit-Modul von Ecomdev.if ($class === 'File') { mageDebugBacktrace(); }
inlib/varien/autoload.php
wie hier: pastebin.com/yiZ0cjVy , aber immer noch gab es mir gleiches Problem ....Antworten:
Das Autoload versucht, die Datei für eine Klasse zu benötigen, die noch nicht in der Codebasis gefunden wurde. Da dies erforderlich ist, liegt
File.php
es nahe, dass irgendwo im Code die KlasseFile()
aufgerufen wird, die in Ihrer Codebasis noch nicht vorhanden ist.Wenn Sie die Stelle finden, an der diese Klasse instanziiert wird, haben Sie das Problem behoben.
quelle
Für das Follow-up
mageDebugBacktrace()
lieferte das folgende Ergebnis:Wenn
Cache.php
ich mir die Datei ansehe, kann ich sehen, dass der Teil 'Datei' der von Magento verwendete Standard-Backend-Cache-Typ ist, wenn keiner angegeben ist. Ich habe meineapp/etc/local.xml
Datei geändert , um 'Datei' zu verwenden. Beachten Sie Großbuchstaben 'F':Datei
app/etc/local.xml
:Hoffe das hilft jemandem aus.
quelle
Ich bin gerade auf eine seltsame Warnung gestoßen : include (somefile.php) ist in Autoload.php in Zeile 93 fehlgeschlagen, nachdem die Arbeit in einer gemeinsam genutzten Testumgebung abgerufen wurde und jemand anderes den Cache aktiviert hat.
Nicht genau dieser Fall, weil es erwähnt wird:
Denken Sie also immer daran, den Cache zu überprüfen und zu deaktivieren / zu löschen, wenn Sie in einer gemeinsam genutzten Umgebung arbeiten, bevor Sie Stunden mit dem Debuggen verschwenden!
quelle
Dieser Fehler beim Erstellen eines Objekts aus einer Klasse wie
$obj = new GoogleClient();
in Magento versucht, die Klassendatei mithilfe von herauszufindenAutoload.php
quelle
Es könnte auch ein Problem mit dem APC-Cache geben. Starten Sie apache2 neu oder führen Sie es
apc_clear_cache();
von PHP ausquelle
Ich hatte das gleiche Problem und es stellte sich heraus, dass das Leeren des Redis-Cache es für mich behebt.
Über die Befehlszeile:
echo 'flushall' | redis-cli -s /path/to/sock
Hier ist die Dokumentation für den Fall, dass Sie keinen Socket verwenden:
https://briansnelson.com/Install_Redis_Caching_for_Magento
Ich hoffe, das hilft.
quelle