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

问题描述 投票:0回答:7

我已经粘贴了 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 内存缓存
内存缓存
memcached 支持 => 启用
libmemcached 版本 => 0.37
注册保存处理程序 => 文件用户 sqlite memcached

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

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

php memcached ubuntu-9.10
7个回答
148
投票

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

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


24
投票

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

sudo apt-get install php5-memcache

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

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


2
投票

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


2
投票

对于 OSX 用户:

运行以下命令安装 Memcached:

brew install memcached

1
投票

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

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

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


0
投票

为了避免混淆,因为这是一个较老的问题,一个小的序言:

rubo77 通过悬赏并要求规范答案来刷新这个问题。阅读有点旧但仍然有效的答案 - 尤其是。 accepted one -- ,我意识到确实有一些基本但重要的,可以说是规范的,链接小姐。

所以这里应该提供的不是规范的答案——多年来细节可能会发生变化——而是提供答案的规范链接。


缺失的环节

对不起化石笑话^^。好吧,回到正题。回答这个问题的主要规范来源当然是php.net,更准确地说:

Memcached 和 Memcache 的广泛和最新的 ServerPilot 安装指南 也非常有用。

自然而然地,问题来了—— PHP8 呢?让我们看看各自的存储库,PHP 扩展社区库 (PECL),我们发现:

  • 最后一个Memcache包稳定版8.0从2020-12-06开始依赖PHP>=8.0.0。对于 PHP>=7.0,请从 2019-12-20 开始发布 4.0.5.2。
  • 最后一个Memcached包稳定版3.2.0从2022-03-24依赖PHP>=7.0.0,所以也可以用PHP8.

注意,不再维护 Memcache(没有“d”)。


因此,在开始更深入的网络搜索活动之前,这些资源应该是第一个寻找的地方(当然是在 Stackoverflow 之后)(这不会产生更多,tbh)。


-10
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.