Erreur après le correctif correctif SUPEE-5994: classe 'Mage_Install_Controller_Router_Install' introuvable

36

J'ai correctement installé le correctif SUPEE-5994:

[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.

Mais maintenant, toutes mes pages Web sont vides.

Le journal des erreurs httpd:

[erreur] [client x] Erreur PHP irrécupérable: la classe 'Mage_Install_Controller_Router_Install' est introuvable dans /var/www/x/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php à la ligne 138

J'ai essayé de:

  • Effacer le / var / cache
  • Réinitialiser le chmod / chown
  • Redémarrez le service httpd

Mais rien ne semble fonctionner.

Quelqu'un a-t-il le même problème ?

EDIT: le fichier Front.php:

 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');
Cqke
la source

Réponses:

38

Avez-vous désactivé et effacé la compilation?

via la console / ssh vous pouvez utiliser

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

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

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

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

pourrait avoir besoin de la quatrième ligne ... pas sûr.

Cela pourrait être un problème avec la ligne qui précède le code que vous avez montré

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

Remarque: j'ai eu un problème similaire où l'administrateur était vide, mais il s'est avéré qu'il s'agissait d'un fichier dans un module qui surchargeait l'un des fichiers principaux - mais ce n'est pas votre cas. Juste au cas où d'autres regarderaient cela avec ce problème.

Jon Holland
la source
Wow, vous êtes le gars! Merci beaucoup. Il suffit d’éditer la troisième ligne, c’est php -f shell / compiler.php - compiler pour moi. Ça marche !
Cqke
1
Cool. J'ai eu de la difficulté à mettre à jour des sites la semaine dernière mate :) Content de l'aide
Jon Holland
1
Mise à jour bon endroit.
Jon Holland
Jon
David Wilkins
:) oui je sais vraiment, David. Juste agréable de voir les gens sortir du pétrin.
Jon Holland
14

Si vous avez désactivé le compilateur et effacé le cache et que vous rencontrez toujours le message d'erreur

Class 'Mage_Install_Controller_Router_Install' not found

Vérifiez si le fichier app/code/core/Mage/Install/Controller/Router/Install.phpexiste.

Lorsque vous avez exécuté le correctif, le répertoire Routern'existait pas app/code/core/Mage/Install/Controlleret le Install.phpfichier n'a donc pas été créé malgré le message contraire applied.patches.list. Cela signifie que vous manquez une classe et vous recevez le message:

Fatal error: Class 'Mage_Install_Controller_Router_Install' not found

Extrait de l' applied.patches.listinstallation du correctif supposément réussi qui ne permet pas de créer le fichier Install.php:

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

Le correctif crée l’ajout suivant au app/code/core/Mage/Install/etc/config.xmlfichier qui fait référence au fichier manquant:

 <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>

Exemple de ce que le fichier manquant app/code/core/Mage/Install/Controller/Router/Install.phpest censé contenir.

<?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 [email protected] 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;
    }
}
Fiasco Labs
la source
1
Bon ajout, Fiasco Labs, j'ai entendu des gens avoir ce problème.
Jon Holland
1
Décrit exactement ce qui s'est passé dans notre cas et ce qui précède a résolu le problème. Merci
Flipmedia