views:

2600

answers:

5

I have Memcache installed and working for PHP apps run through Apache (v2.2) but when I try to run a .php file in the command-line i get this error:

Fatal error: Class 'Memcache' not found in /usr/local/Matters/app/matters-common/connection.php on line 94

Line 94 is:

$memcache = new Memcache;

Other info:

CentOS 5.2
PHP 5.2.5 (cli) (built: Feb 20 2008 21:13:12)
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technologies
Apache v2.2.8

+1  A: 

It is possible that you have a separate php.ini file for CLI mode. This file might not include memcache extension.

leafnode
+6  A: 

Presumably you have separate php.ini files set up for apache and the command line (cli).

If so, you need to add the following to your cli php.ini file:

extension=memcache.so

On Ubuntu it's in /etc/php5/cli/php.ini

If it's working then memcache should appear in the list of modules if you run php -m on the command line.

Alternatively, you can create a file /etc/php5/cond.d/memcache.ini with the same contents.

therefromhere
Ran php -m and it's not showing
rjstelling
Are any other modules working for the cli? Is "extension_dir" set in the cli php.ini file? If memcache.so is in the default directory ( /usr/lib/php5/20060613/ for me) then you can leave extension_dir commented out.
therefromhere
A: 

For simplicity sake I used:

php -c /etc/php.ini ./cli-script.php
rjstelling
+1  A: 

Hi there, I did have this kind of error and I also did php -i | grep memcache and it says memcache is enabled, but my solution that solved the problem was when I edited the php.ini, i simply modified the extension_dir="./" line to the full path of the extensions directory which now looked like this, extension_dir="/usr/local/lib" -- you need to check where the extension directory of the php reside and make sure memcache.so is there..

then i simply restarted httpd and alas the problem is gone.

you can check the detailed steps here:

http://joemarie-aliling.com/223/php-programming/php-memcache-not-found-problem/

Joemarie Aliling
A: 

It is possible that you have se

raja