Error después del exitoso parche SUPEE-5994: Clase 'Mage_Install_Controller_Router_Install' no encontrada

36

Instalé con éxito el parche 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.

Pero ahora, todas mis páginas web están en blanco.

El registro de errores httpd:

[error] [cliente x] PHP Error grave: la clase 'Mage_Install_Controller_Router_Install' no se encuentra en /var/www/x/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php en la línea 138

He intentado:

  • Borrar el / var / caché
  • Restablecer el chmod / chown
  • Reinicia el servicio httpd

Pero nada parece funcionar.

Alguien tiene el mismo problema?

EDITAR: El archivo 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
fuente

Respuestas:

38

¿Has apagado y borrado la compilación?

a través de la consola / ssh puedes usar

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

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

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

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

podría necesitar la cuarta línea ... no estoy seguro.

Podría ser un problema con la línea que viene antes del código que mostró

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

Nota: tuve un problema similar en el que el administrador estaba en blanco, sin embargo, resultó ser un archivo en un módulo que anulaba uno de los archivos principales, pero esto no es así en su caso. En caso de que otros vean esto con ese problema.

Jon Holland
fuente
Wow, eres el chico! Muchas gracias. Solo edite la tercera línea, fue php -f shell / compiler.php - compilar para mí. Funciona !
Cqke
1
Guay. Tuve verdaderos problemas para actualizar sitios la semana pasada, amigo :) Me alegro de ayudar
Jon Holland
1
Buen lugar actualizado.
Jon Holland
Para eso están los votos positivos, Jon
David Wilkins
:) Ya lo sé, David. Simplemente agradable ver a la gente salir de un aprieto.
Jon Holland
14

Si ha deshabilitado el compilador y borrado el caché y aún se encuentra con el error

Class 'Mage_Install_Controller_Router_Install' not found

Verifique si el archivo app/code/core/Mage/Install/Controller/Router/Install.php existe.

Cuando ejecutó el parche, el directorio Routerno existía app/code/core/Mage/Install/Controllery, por lo tanto, el Install.phparchivo no se creó a pesar de que se le dijo lo contrario en el applied.patches.listarchivo. Esto significa que te estás perdiendo una clase y recibes el mensaje:

Fatal error: Class 'Mage_Install_Controller_Router_Install' not found

Extracto de la applied.patches.listinstalación de parche supuestamente exitosa que no puede crear el archivo Install.php:

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

El parche crea la siguiente adición al app/code/core/Mage/Install/etc/config.xmlarchivo que hace referencia al archivo que falta:

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

Muestra de lo que app/code/core/Mage/Install/Controller/Router/Install.phpse supone que contiene el archivo faltante .

<?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;
    }
}
Laboratorios Fiasco
fuente
1
Buena adición Fiasco Labs, he escuchado a personas que tienen este problema.
Jon Holland
1
Describe exactamente lo que sucedió en nuestro caso y lo anterior resolvió el problema. Gracias
Flipmedia