Fehler nach erfolgreichem Patch SUPEE-5994: Klasse 'Mage_Install_Controller_Router_Install' nicht gefunden


36

Ich habe den SUPEE-5994-Patch erfolgreich installiert:

[root@x]# sh PATCH_SUPEE-5994_EE_1.14.1.0_v1-2015-05-14-05-05-02.sh
Checking if patch can be applied/reverted successfully...
Patch was applied/reverted successfully.

Aber jetzt sind alle meine Webseiten leer.

Das httpd-Fehlerprotokoll:

[Fehler] [Client x] Schwerwiegender PHP-Fehler: Klasse 'Mage_Install_Controller_Router_Install' in /var/www/x/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php in Zeile 138 nicht gefunden

Ich habe versucht:

  • Leeren Sie das / var / cache
  • Setzen Sie den chmod / chown zurück
  • Starten Sie den httpd-Dienst neu

Aber nichts scheint zu funktionieren.

Hat jemand das gleiche Problem?

EDIT: Die Front.php-Datei:

 Varien_Profiler::start('mage::app::init_front_controller::collect_routers');
    foreach ($routersInfo as $routerCode => $routerInfo) {
        if (isset($routerInfo['disabled']) && $routerInfo['disabled']) {
            continue;
        }
        if (isset($routerInfo['class'])) {
   // LINE 138 HERE
            $router = new $routerInfo['class'];
            if (isset($routerInfo['area'])) {
                $router->collectRoutes($routerInfo['area'], $routerCode);
            }
            $this->addRouter($routerCode, $router);
        }
    }
    Varien_Profiler::stop('mage::app::init_front_controller::collect_routers');

Antworten:


38

Haben Sie die Kompilierung deaktiviert und gelöscht?

über die konsole / ssh kannst du das benutzen

$ php -f shell/compiler.php -- disable

$ php -f shell/compiler.php -- clear

$ php -f shell/compiler.php -- compile

$ php -f shell/compiler.php -- enable

Möglicherweise muss die vierte Zeile ... nicht sicher.

Möglicherweise liegt ein Problem mit der Zeile vor dem angezeigten Code vor

$routersInfo = Mage::app()->getStore()->getConfig(self::XML_STORE_ROUTERS_PATH);

Hinweis: Ich hatte ein ähnliches Problem, bei dem der Administrator leer war. Es stellte sich jedoch heraus, dass es sich um eine Datei in einem Modul handelte, das eine der Kerndateien überschrieb. In Ihrem Fall ist dies jedoch nicht der Fall. Nur für den Fall, dass andere dies mit diesem Problem betrachten.


Wow, du bist der Typ! Danke vielmals. Bearbeiten Sie einfach die dritte Zeile, es war PHP -f shell / compiler.php - compile für mich. Es klappt !
Cqke

1
Cool. Hatte echte Probleme beim Aktualisieren von Websites letzte Woche Kumpel :) Froh zu helfen
Jon Holland

1
Aktualisierter guter Ort.
Jon Holland

Dafür gibt es Upvotes, Jon
David Wilkins

:) yer ich weiß wirklich, David. Einfach schön zu sehen, wie Leute aus einer Essiggurke rauskommen.
Jon Holland

14

Wenn Sie den Compiler deaktiviert und den Cache geleert haben und der Fehler weiterhin auftritt

Class 'Mage_Install_Controller_Router_Install' not found

Überprüfen Sie, ob die Datei app/code/core/Mage/Install/Controller/Router/Install.phpvorhanden ist.

Als Sie den Patch Routerausführten, existierte das Verzeichnis nicht in app/code/core/Mage/Install/Controllerund so wurde die Install.phpDatei nicht erstellt, obwohl in der applied.patches.listDatei anders angegeben wurde . Dies bedeutet, dass Sie eine Klasse verpassen und die folgende Meldung erhalten:

Fatal error: Class 'Mage_Install_Controller_Router_Install' not found

Auszug aus der applied.patches.listvermeintlich erfolgreichen Patch-Installation, bei der die Datei Install.php nicht erstellt werden kann:

patching file app/code/core/Mage/Install/Controller/Router/Install.php
patching file app/code/core/Mage/Install/etc/config.xml

Der Patch erstellt den folgenden Zusatz zur app/code/core/Mage/Install/etc/config.xmlDatei, der auf die fehlende Datei verweist:

 <default>
     <web>
         <routers>
             <install>
                 <area>frontend</area>
                 <class>Mage_Install_Controller_Router_Install</class>
             </install>
         </routers>
     </web>
 </default>
 <stores>
     <default>
         <web>
             <routers>
                 <install>
                     <area>frontend</area>
                     <class>Mage_Install_Controller_Router_Install</class>
                 </install>
             </routers>
         </web>
     </default>
 </stores>

Beispiel, was die fehlende Datei app/code/core/Mage/Install/Controller/Router/Install.phpenthalten soll.

<?php
/**
 * Magento Enterprise Edition
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Magento Enterprise Edition End User License Agreement
 * that is bundled with this package in the file LICENSE_EE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://www.magento.com/license/enterprise-edition
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magento.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magento.com for more information.
 *
 * @category    Mage
 * @package     Mage_Install
 * @copyright Copyright (c) 2006-2014 X.commerce, Inc. (http://www.magento.com)
 * @license http://www.magento.com/license/enterprise-edition
 */

class Mage_Install_Controller_Router_Install extends Mage_Core_Controller_Varien_Router_Standard
{
    /**
     * Check if current controller instance is allowed in current router.
     * 
     * @param Mage_Core_Controller_Varien_Action $controllerInstance
     * @return boolean
     */
    protected function _validateControllerInstance($controllerInstance)
    {
        return $controllerInstance instanceof Mage_Install_Controller_Action;
    }
}

1
Gute Ergänzung Fiasco Labs, ich habe gehört, dass Leute dieses Problem haben.
Jon Holland

1
Beschreibt genau, was in unserem Fall passiert ist, und behebt das Problem. Vielen Dank
Flipmedia
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.