PHP memcached 致命错误:找不到类“Memcache”

Posted

技术标签:

【中文标题】PHP memcached 致命错误:找不到类“Memcache”【英文标题】:PHP memcached Fatal error: Class 'Memcache' not found 【发布时间】:2011-02-09 04:24:46 【问题描述】:

我已经粘贴了来自php.net 的示例,用于在 php 中使用 memcached,我得到了:

Fatal error: Class 'Memcache' not found

我的 php.ini 中有这个:

[内存缓存] memcache.hash_strategy = “一致” memcache.max_failover_attemps = 100 memcache.allow_failover = 1

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

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

php -m | grep -i 内存缓存 内存缓存

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

【问题讨论】:

可能重复...***.com/questions/1171313/… 我刚刚看了一眼,我的 php.ini 中已经列出了扩展名,并且我已经确保我的 extension_dir 指向了正确的位置。 有关安装“MEMCACHE”的简单命令,请参见下面的答案。 sudo apt-get install php-memcache 对我有用。 packages.ubuntu.com/… 显示可用的包。 【参考方案1】:

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

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

【讨论】:

这有点傻,但不幸的是,它在 PHP 中很常见。他们没有更新旧的扩展以更好的方式使用新的东西,而是打破了向后的竞争,他们只是创建了一个新的扩展。另请参阅 mysql 和 mysqli。 这似乎是正确的问题。但是我找到的所有说明似乎都说要安装 memcached,但请参阅 memcache。这有点令人困惑。 好的,我找到了一个简单的修复方法(因为其他一切似乎都不起作用)。只需运行以下命令:sudo aptitude install memcached php5-memcached 请注意,这些软件包名称仅适用于某些特定的 Debian 衍生产品。包名在其他环境中会有所不同。 两者都加载应该不会对性能产生真正的影响,不会。【参考方案2】:

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

sudo apt-get install php5-memcache

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

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

【讨论】:

几年后,我认为这个答案已经过时了。 sudo apt-get install php-memcache 对我有用。 packages.ubuntu.com/… 显示可用的包。 @Ryan 当然,这仅适用于不使用 PHP5 的情况。许多服务器仍然使用 PHP5,所以它和当时一样有效。此外,该问题被标记为 ubuntu-9.10,因此这进一步验证了我的答案,因为它与该版本直接相关。 "Memcached & Memcached" ?? 有windows的解决方案吗?【参考方案3】:

我在这篇文章中找到了解决方案:https://***.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.ziphttp://mustafabugra.com/resim/php_memcache-5.4-nts-vc9-x86.zip

【讨论】:

【参考方案4】:

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

PHP 启动:sqlanywhere:无法 初始化模块 编译的模块 构建 ID=API20090626, TS,VC9 PHP 使用 build ID=API20090626 编译, TS,VC6 这些选项需要匹配

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

【讨论】:

【参考方案5】:

对于 OSX 用户:

运行以下命令安装 Memcached:

brew install memcached

【讨论】:

【参考方案6】:

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

【讨论】:

所做的只是阻止您的 WordPress 安装能够进行任何对象缓存。它实际上并不能解决任何问题,更不用说 OP 提出的问题了。

以上是关于PHP memcached 致命错误:找不到类“Memcache”的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:在 Zend Framework + Wamp 中找不到类“Memcache”

“PHP 致命错误:找不到类 'HttpRequest'”

PHP致命错误:找不到类

PHP致命错误:未捕获错误:找不到类

为啥我收到 PHP 致命错误:未捕获的错误:找不到类“MyClass”? [复制]

在XAMPP上使用memcached