MAGENTO COMPILER ( Clear, Enable and Disable) FROM PHP Script & LINUX COMMAND SHELL
If we are installing 3rd party magento module without disableing and clearing magento compiler , we get an error in magento of “mage registry key already exist” or our magento admin panel get stop working or stop website functionality .
It is always recommended in magento , magento compiler should be disabled before any module installation , if you have active magento compiler.
If your magento admin panel not works for disabled compiler , here I am explaining a way to clear and disable magento compiler using command line or shell prompt and php function .
Magento compiler clear and disable using command line utility
Magento having command line script for communication with the compiler. Now login via SSH and go the website directory or document root and we need to run compiler.php file which is in the shell folder in website directory of website for clearing and disableing the compiler. Execute below commands as listed.
# php shell/compiler.php clear # php shell/compiler.php disable
Here you can also check the status of the compiler.
# php -f shell/compiler.php -- state Compiler Status: Disabled Compilation State: Not Compiled Collected Files Count: 0 Compiled Scopes Count: 0
Now clear the magento cache directory (/var/cache) , Now try to login to Magento admin panel
Magento compiler clear and disable through php function exec()
if we don’t have SSH access of server , we can do it through php function exec() . We need to create a php script for it and upload it on the server via ftp or sftp which you have to execute it in the browser.
Crate a php file and insert below script and upload it to the server.
echo exec('./shell/php -f compiler.php clear'); echo exec('./shell/php -f compiler.php disable');
Magento compiler clear and disable manually :
Here is one more method of disableing compiler mode through configuration file it includes folder named config.php but ideally we should never edit this file by directly .
Find below file in include folder named as config.php . Path will be as follows.
[Magento root folder]/include/config.php.
Edit the config.php file and comments below both lines :
#define('COMPILER_INCLUDE_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'src'); #define('COMPILER_COLLECT_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'stat');
Now login in admin panel and change the compiler Disable/Enable.