必须在宝塔对应网站所用PHP版本的“安装扩展”中勾选memcached(非memcache),并验证phpinfo()显示“memcached support => enabled”及服务端netstat确认11211端口监听,否则Class 'Memcached' not found或连接失败。
确认 PHP 扩展是否装对了版本
宝塔里“软件商店”中那个蓝色
图标组件只是个壳,它不等于 PHP 能用
。真正起作用的是对应 PHP 版本的扩展——必须进「PHP 设置 → 安装扩展」里单独勾选
(注意拼写,不是
)。
常见错误是:网站用的是
,但只在
里装了扩展;或者装了
(旧版、已淘汰),结果代码报
。
查当前网站实际 PHP 版本:宝塔 → 网站 → 点击域名 → 「PHP 版本」栏显示的才是真实版本
进该版本的「设置 → 安装扩展」,找
(带 d 结尾),勾选安装并重启 PHP
验证是否生效:新建一个
,内容为
,浏览器访问,搜索
,看到 “memcached support => enabled” 和 “libmemcached version” 才算成功
检查 memcached 服务端有没有真跑起来
报
,说明服务端二进制根本没装,光装 PHP 扩展毫无意义。
宝塔不会自动帮你装服务端,得手动执行命令:
立即学习
“
PHP免费学习笔记(深入)
”;
CentOS/RedHat 系:运行
Ubuntu/Debian 系:运行
装完立刻检查监听状态:
,有输出才表示服务已启动并监听本地端口
如果没输出,手动启一下:
别信面板上“Memcached 已安装”的提示——那只是图标亮了,不代表服务在跑。
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
连接失败或命中率为 0 的典型原因
PHP 扩展和服务端都 OK,但 WordPress 缓存还是不走 Memcached,大概率卡在这几个地方:
WordPress 没启用
:必须把插件提供的
(不是
或
目录)直接丢进
根目录,不是
PHP 代码里没显式连对地址:默认是
,但如果改过配置(比如绑了
或换了端口),就得写全:
键名非法触发序列化失败:自己拼的键如
中
是数组或
,PHP 自动序列化后 Memcached 拒收,日志里会报
;只传字符串或 JSON,避免直接塞数组
验证是否真在用、以及为什么命中率长期为 0
面板里「软件商店 → Memcached → 负载状态」显示 hit=0,不一定是没装好,更可能是没被访问触发缓存逻辑。
真实验证步骤:
先确保网站有真实访问(比如自己多刷几次前台页面),空流量下自然没命中
看服务端日志:
;若无日志,编辑
,把
改成
再
用命令行直连测试:
,有数字增长说明服务在收请求
WordPress 插件页或后台查看缓存状态(如 Memcached Is Your Friend 插件自带仪表盘),比面板里的统计更准
最常被忽略的一点:多个 PHP 版本共存时,扩展只装在一个版本里,而网站绑错了版本——这种“看起来全对,实则完全不走”的情况,排查起来最耗时间。
Memcachednew Memcached()memcachedmemcachephp7.4php7.2memcacheClass 'Memcached' not foundmemcachedinfo.phpmemcachedmemcached -vcommand not foundyum install -y memcachedapt install -y memcachednetstat -tuln | grep :11211systemctl start memcached && systemctl enable memcachedobject-cache.phpobject-cache.php.zipplugin/wp-content//wp-content/plugins/127.0.0.1:112110.0.0.0$m = new Memcached(); $m->addServer('127.0.0.1', 11211);"user_{$id}"$idnullSERVER_ERROR bad data chunktail -f /var/log/memcached.log/etc/sysconfig/memcachedOPTIONS"-vv"systemctl restart memcachedecho "stats" | nc 127.0.0.1 11211 | grep "curr_items\|cmd_get\|get_hits"