81

我从php.net粘贴了在 php 中使用 memcached 的示例,我得到:

Fatal error: Class 'Memcache' not found

我的 php.ini 中有这个:

[memcache]
memcache.hash_strategy = "一致"
memcache.max_failover_attemps = 100
memcache.allow_failover = 1

以下是分别来自 php -i 和 php -m 的信息:

php -i | grep -i memcache
memcached
memcached 支持 => 启用
libmemcached 版本 => 0.37
注册保存处理程序 => 文件用户 sqlite memcached

php -m | grep -i memcache
memcached

所以 php 似乎已经将 memcached 作为一个模块加载,并且 php info 说它已加载并且正在使用 v .37。我还没有通过 apache 尝试过,我现在只是通过 cli 使用它。有什么想法吗?

4

6 回答 6

138

在 PHP 中有两个对 memcached 的扩展,“ memcache ”和“ memcached ”。

看起来您正在尝试使用一个(“memcache”),但另一个已安装(“memcached”)。

于 2010-04-17T16:15:18.870 回答
23

不管评论中接受的答案是什么,安装“Memcache”的正确方法是:

sudo apt-get install php5-memcache

注意Memcache 和 Memcached 是两个不同但相关的软件,它们经常被混淆。

编辑 由于这是一篇旧文章,我认为值得一提的是,您应该将php5替换为您的 php 版本号。

于 2015-06-23T18:36:41.643 回答
1

我在这篇文章中找到了解决方案:https ://stackoverflow.com/questions/11883378/class-memcache-not-found-php# =

我找到了 PHP 5.4.4 的工作 dll 文件

我不知道它们有多稳定,但它们确实有效。学分转到此链接。

http://x32.elijst.nl/php_memcache-5.4-nts-vc9-x86.zip

http://x32.elijst.nl/php_memcache-5.4-vc9-x86.zip

它是 2.2.5.0 版本,我在编译后注意到(对于 PHP 5.4.4)。

请注意,它不是 2.2.6 但可以工作。我还将它们镜像到我自己的 FTP 中。镜像链接:

http://mustafabugra.com/resim/php_memcache-5.4-vc9-x86.zip http://mustafabugra.com/resim/php_memcache-5.4-nts-vc9-x86.zip

于 2013-07-22T02:30:19.013 回答
1

对于 OSX 用户:

运行以下命令安装 Memcached:

brew install memcached
于 2018-10-22T01:23:50.457 回答
0

右边是php_memcache.dll。就我而言,我使用的是用 vc9 而不是 vc6 编译器编译的 lib。在补丁错误日志中,我得到了类似的东西:

PHP Startup: sqlanywhere: Unable to initialize module Modulecompiled with build ID=API20090626, TS,VC9 PHPcompiled with build ID=API20090626, TS,VC6 这些选项需要匹配

检查您是否有相同的日志并尝试下载使用不同编译器编译的不同 dll。

于 2010-12-27T22:12:44.113 回答
-8

我进入 wp-config/ 并删除了 object-cache.php 和 advanced-cache.php,它对我来说效果很好。

于 2015-05-10T02:15:25.523 回答