เกิดข้อผิดพลาดหลังจากไม่พบแพทช์ที่ประสบความสำเร็จ SUPEE-5994: ไม่พบคลาส 'Mage_Install_Controller_Router_Install' คลาส


36

ฉันติดตั้งแพตช์ 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.

แต่ตอนนี้หน้าเว็บทั้งหมดของฉันว่างเปล่า

บันทึกข้อผิดพลาด httpd:

[ข้อผิดพลาด] [ไคลเอ็นต์ x] ข้อผิดพลาดร้ายแรงของ PHP: คลาส 'Mage_Install_Controller_Router_Install' ไม่พบใน /var/www/x/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php ในบรรทัดที่ 138

ฉันพยายาม:

  • เคลียร์ / var / cache
  • รีเซ็ต chmod / chown
  • เริ่มบริการ httpd ใหม่

แต่ดูเหมือนว่าจะไม่มีอะไรทำงาน

ใครมีปัญหาเดียวกัน

แก้ไข: ไฟล์ 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');

คำตอบ:


38

คุณได้ปิดและคอมไพล์แล้วหรือยัง?

ผ่านทางคอนโซล / ssh ที่คุณสามารถใช้ได้

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

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

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

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

อาจต้องมีบรรทัดที่สี่ ... ไม่แน่ใจ

อาจเป็นปัญหากับบรรทัดที่มาก่อนรหัสที่คุณแสดง

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

หมายเหตุ: ฉันมีปัญหาที่คล้ายกันซึ่งผู้ดูแลระบบว่างเปล่า แต่กลายเป็นไฟล์ในโมดูลที่แทนที่หนึ่งในไฟล์หลัก - แต่นี่ไม่ใช่ในกรณีของคุณ ในกรณีที่คนอื่นมองปัญหานี้ด้วย


ว้าวคุณเป็นผู้ชาย! ขอบคุณมาก. เพิ่งแก้ไขบรรทัดที่สามมันเป็น php -f shell / compiler.php - รวบรวมสำหรับฉัน มันได้ผล !
Cqke

1
เย็น. พบปัญหาจริงในการอัปเดตไซต์เมื่อสัปดาห์ที่แล้ว :) ยินดีที่จะช่วย
Jon Holland

1
อัปเดตจุดที่ดี
Jon Holland

นั่นคือสิ่งที่ upvotes ใช้สำหรับจอน
David Wilkins

:) ฉันรู้จริง ๆ แล้วเดวิด แค่ดีใจที่ได้เห็นคนออกมาจากผักดอง
Jon Holland

14

หากคุณปิดการใช้งานคอมไพเลอร์และล้างแคชและคุณยังคงพบข้อผิดพลาด

Class 'Mage_Install_Controller_Router_Install' not found

ตรวจสอบว่าไฟล์นั้นapp/code/core/Mage/Install/Controller/Router/Install.phpมีอยู่หรือไม่

เมื่อคุณเรียกใช้โปรแกรมปะแก้ไดเรกทอรีRouterไม่มีอยู่ในapp/code/core/Mage/Install/Controllerนั้นจึงInstall.phpไม่ได้สร้างไฟล์แม้ว่าจะมีการบอกเป็นอย่างอื่นในapplied.patches.listไฟล์ หมายความว่าคุณไม่มีชั้นเรียนและได้รับข้อความ:

Fatal error: Class 'Mage_Install_Controller_Router_Install' not found

ข้อความที่ตัดตอนมาจากการapplied.patches.listติดตั้งโปรแกรมปะแก้ที่ประสบความสำเร็จซึ่งไม่สามารถสร้างไฟล์ Install.php:

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

แพตช์สร้างการเพิ่มต่อไปนี้ไปยังapp/code/core/Mage/Install/etc/config.xmlไฟล์ซึ่งอ้างอิงไฟล์ที่หายไป:

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

ตัวอย่างของสิ่งที่ไฟล์ที่หายไปapp/code/core/Mage/Install/Controller/Router/Install.phpควรจะมี

<?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
นอกจาก Fiasco Labs ที่ดีฉันได้ยินคนที่มีปัญหานี้
Jon Holland

1
อธิบายสิ่งที่เกิดขึ้นในกรณีของเราและสิ่งที่กล่าวข้างต้นได้แก้ไขปัญหา ขอบคุณ
Flipmedia
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.