我已经粘贴了 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 memcachedphp -m | grep -i 内存缓存
内存缓存
所以 php 似乎已经将 memcached 作为模块加载,并且 php info 说它已加载并且正在使用 v .37。我还没有通过 apache 尝试过,我现在只是通过 cli 使用它。有什么想法吗?
不管评论中接受的答案是什么,安装“Memcache”的正确方法是:
sudo apt-get install php5-memcache
注意 Memcache 和 Memcached 是两个不同但相关的软件,经常混淆。
编辑 由于这是一篇旧文章,我认为值得一提的是,您应该将 php5 替换为您的 php 版本号。
我在这篇文章中找到了解决方案: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
对于 OSX 用户:
运行以下命令安装 Memcached:
brew install memcached
右边是php_memcache.dll。在我的例子中,我使用的是用 vc9 而不是 vc6 编译器编译的 lib。在 apatche 错误日志中,我得到了类似的东西:
PHP 启动:sqlanywhere:无法 initialize module 编译的模块 构建 ID=API20090626,TS,VC9 PHP 使用构建 ID=API20090626 编译, TS,VC6 这些选项需要匹配
检查您是否有相同的日志并尝试下载使用不同编译器编译的不同 dll。
为了避免混淆,因为这是一个较老的问题,一个小的序言:
rubo77 通过悬赏并要求规范答案来刷新这个问题。阅读有点旧但仍然有效的答案 - 尤其是。 accepted one -- ,我意识到确实有一些基本但重要的,可以说是规范的,链接小姐。
所以这里应该提供的不是规范的答案——多年来细节可能会发生变化——而是提供答案的规范链接。
对不起化石笑话^^。好吧,回到正题。回答这个问题的主要规范来源当然是php.net,更准确地说:
Memcached 和 Memcache 的广泛和最新的 ServerPilot 安装指南 也非常有用。
自然而然地,问题来了—— PHP8 呢?让我们看看各自的存储库,PHP 扩展社区库 (PECL),我们发现:
注意,不再维护 Memcache(没有“d”)。
因此,在开始更深入的网络搜索活动之前,这些资源应该是第一个寻找的地方(当然是在 Stackoverflow 之后)(这不会产生更多,tbh)。
我进入 wp-config/ 并删除了 object-cache.php 和 advanced-cache.php,它对我来说工作得很好。