I have a site running on 1.6.0 and not done any patches before. I installed the security patches following the instructions at:
the first 2 security patches 1533 and 5341 installed ok and the site was accessible and working ok. I then saw there was another new security patch just released 5994, so I followed the same method to update this too however after saying it was successful I got the following error:
Fatal error: Class 'Mage_Install_Controller_Router_Install' not found in /var/www/vhosts/dev.mydomain.co.uk/httpdocs/includes/src/__default.php on line 17091
After searching the internet I found a post with the same issue and it mentioned if you didn't turn off the compiler there could be issues however it never mentioned this in the installation instruction. I the post it suggested running the following by 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
This was run:
root@cloud1 httpdocs]# php -f shell/compiler.php -- disable
PHP Warning: Directive 'safe_mode' is deprecated in PHP 5.3 and greater in Unknown on line 0
Compiler include path disabled
[root@cloud1 httpdocs]# php -f shell/compiler.php -- clear
PHP Warning: Directive 'safe_mode' is deprecated in PHP 5.3 and greater in Unknown on line 0
Compilation successfully cleared
[root@cloud1 httpdocs]# php -f shell/compiler.php -- compile
PHP Warning: Directive 'safe_mode' is deprecated in PHP 5.3 and greater in Unknown on line 0
Compilation successfully finished
[root@cloud1 httpdocs]# php -f shell/compiler.php -- enable
PHP Warning: Directive 'safe_mode' is deprecated in PHP 5.3 and greater in Unknown on line 0
Compiler include path enabled
Now my site pages and admin are completely blank, no source code?
Please help
Solved! Go to Solution.
What are your error logs (var/logs) telling you? And did you create the file app/code/core/Mage/Install/Controller/Router/Install.php with a capital "I"? If not, rename it, so it will start with a capital "I".
Looking forward to see if there is anything in your error logs.
Installing patches is like installing modules, if any compiliation or caching is left enabled, you get left wit a site that's trying to run bits of the old code with the new code. After disabling the compiler and disabling and clearing the Magento cache, do the following:
Check to see if the file app/code/core/Mage/Install/Controller/Router/Install.php exists.
When you ran the patch, the directory Router didn't exist in app/code/core/Mage/Install/Controller and so the Install.php file did not get created. This means you're missing a class and you get the message: Fatal error: Class 'Mage_Install_Controller_Router_Install' not found
Contents of the Install.php file can be found in the following link.
http://community.magento.com/t5/Version-Upgrades/SUPEE-5994-Built-In-FAIL-for-1-6-x-x/m-p/5975
Hi, if you get these errors, there is another way to disable the compiler. Find the file config.php in the directory includes. It will look like this:
<?php ...
define('COMPILER_INCLUDE_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'src');
define('COMPILER_COLLECT_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'stat');
..
comment out both lines like this:
#define('COMPILER_INCLUDE_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'src');
#define('COMPILER_COLLECT_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'stat');
try again. You will probably be able to login now. Go to your tools, rerun compilation process and when you get a success, go back to your includes/config.php file and uncomment the lines again.
You should find everything working again.
Thanks for both suggestions. I created the router folder and added and install.php file with the following code:
<?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; } }
I then tried the second post commenting out the compiler code in the includes/config.php file, when I went into this file the second line was already commented out for some reason? But I commented out the first line too, refreshed my browser, cleared my cache but same thing unfortunatley, blank pages :-) Any ideas?
What are your error logs (var/logs) telling you? And did you create the file app/code/core/Mage/Install/Controller/Router/Install.php with a capital "I"? If not, rename it, so it will start with a capital "I".
Looking forward to see if there is anything in your error logs.
I can't see anything in the log files as a recent error.
Changing the index.php to Index.php seemed to work!, thankyou do much. Just got to do some testing now but it seems to all look ok on the surface.
Thanks again for your help
Did you rename the index.php file in the root to Index.php? That should not be necessary. If you meant that you renamed install.php to Install.php, I didn't say anything.
Thank you, it works fine to me.