So in dealing with Magento, I’ve ran across the following error:
Fatal error: spl_autoload(): Class Zend_Log_Exception could not be loaded …/lib/Zend/Log/Writer/Stream.php on line 132
We were attempting to use Memcache but each time it was enabled, the site would throw the above mentioned error on the page. So we had it isolated to Memcache (disable Memcache in local.xml and error goes away) . Reviewing the log files on the server (/var/log/system.log), we discovered the following:
ERR (3): Warning: ini_set(): Cannot find save handler ‘memcache’ in …app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 56
The code was trying to use a memcache handler, but couldn’t find it. A review of the PHPINFO() output further confirmed that memcache was not a recognized handler:
The session had a memcached handler, but not a memcache handler!
On the server, I typed php on the command line and discovered the following:
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib64/php/modules/memcache.so’ – /usr/lib64/php/modules/memcache.so: cannot open shared object file: No such file or directory in Unknown on line 0
So armed with that knowledge, I check the location to see if, indeed, the file exists. I discovered the memcached.so file does, but memcache.so file does not!
The code appeared to be referencing the Memcache handler, but the only code base installed was the Memcached! After discovery, the Memcache code base was installed on the servers and resolved the issues.
We were able to confirm the presence of the Memcache handler in the PHPINFO() output:
The error went away and we were able to proceed!