在命令行PHP脚本中找不到“Memcache”

我已经安装了Memcache,并且通过Apache(v2.2)运行PHP应用程序,但是当我尝试在命令行中运行.php文件时,出现此错误:

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

94行是:

 $memcache = new Memcache; 

其他信息:

CentOS 5.2
PHP 5.2.5(cli)(构build于:2008年2月20日21:13:12)
Zend Engine v2.2.0,版权所有(c)1998-2007 Zend Technologies
Apache v2.2.8

大概你有单独的php.ini文件设置为Apache和命令行(cli)。

如果是这样,您需要将以下内容添加到您的cli php.ini文件中:

 extension=memcache.so 

在Ubuntu上它在/etc/php5/cli/php.ini

如果它正在工作,那么如果在命令行上运行php -m ,那么memcache应该出现在模块列表中。

或者,您可以使用相同的内容创建文件/etc/php5/cond.d/memcache.ini

对于CLI模式,可能有一个单独的php.ini文件。 该文件可能不包含memcache扩展名。

我确实有这种错误,我也做了php -i | grep memcache,它说memcache已启用,但我解决这个问题的解决方案是当我编辑php.ini,我只是修改extension_dir =“./”行的扩展目录,现在看起来像这样的完整路径, extension_dir =“/ usr / local / lib” – 你需要检查php的扩展目录在哪里,并确保memcache.so在那里..

那么我只是重新启动httpd和唉问题已经没有了。

你可以在这里查看详细的步骤:

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

为了简单起见,我使用了:

 php -c /etc/php.ini ./cli-script.php 

如果您不知道您的命令行正在使用哪个php.ini,请键入php -i。 你会得到一个很长的设置列表,在列表的顶部附近,你会看到哪个php.ini被使用:

 Configuration File (php.ini) Path => /Applications/MAMP/bin/php/php5.3.6/conf Loaded Configuration File => /Applications/MAMP/bin/php/php5.3.6/conf/php.ini Scan this dir for additional .ini files => (none) Additional .ini files parsed => (none)