安装Memcached服务端不等于PHP能用缓存,还需手动安装并启用memcached扩展,验证需CLI和phpinfo双确认,代码连接前须确保服务运行且扩展生效。

宝塔面板里安装Memcached服务端是否等于PHP能用缓存?
不是。在宝塔「软件商店」安装的 Memcached 是服务端(守护进程),只负责监听 11211 端口、存取键值对;PHP 默认不自带客户端能力,必须额外安装并启用 memcached 或 memcache 扩展(二者不同,推荐前者)。
在宝塔中安装Memcached服务端的实操要点
进「软件商店」→ 搜索 Memcached → 选择对应系统版本安装(通常选最新稳定版)。安装后注意:
- 服务默认监听
127.0.0.1:11211,不对外网开放,安全但需确保 PHP 进程与之同机通信 - 内存限制在配置文件
/www/server/memcached/etc/memcached.conf中,-m 64表示 64MB,小站点够用,大流量建议调至128或256 - 启动失败常见原因是端口被占用,可用命令
netstat -tuln | grep :11211检查 - 重启服务用宝塔界面按钮即可,无需手动
systemctl
PHP 中加载 memcached 扩展的三步验证法
宝塔不会自动为 PHP 安装扩展,必须手动操作:
- 进入「软件商店」→ 找到已安装的 PHP 版本(如
PHP-7.4)→ 点击「设置」→ 切换到「安装扩展」选项卡 - 勾选
memcached(不是memcache),点击安装;等待完成,页面会提示「扩展安装成功」 - 关键验证:执行
php -m | grep memcached,有输出即代表 CLI 下可用;再建一个info.php写<?php phpinfo(); ?>,浏览器打开,搜索memcached看是否有模块信息和版本号 - 如果
phpinfo()里没出现,大概率是 PHP-FPM 进程未重载,点宝塔里该 PHP 版本的「重载配置」按钮
PHP 代码里连接 Memcached 的最小可用写法
扩展装好只是前提,连不上或超时仍无法使用。最简测试代码如下(放在网站根目录运行):
立即学习“PHP免费学习笔记(深入)”;
<?php
$mem = new Memcached();
$mem->addServer('127.0.0.1', 11211);
$mem->set('test_key', 'hello world', 300); // 5分钟过期
var_dump($mem->get('test_key'));
?>若返回 string(11) "hello world",说明通了;若报错 Failed to connect to localhost:11211,检查 Memcached 服务状态;若报错 Class 'Memcached' not found,说明扩展没生效或 PHP 版本选错(比如给 PHP-8.0 装了扩展却用 PHP-7.4 运行)。
实际项目中,别直接裸写 new Memcached(),容易因连接失败阻塞请求;至少加个 if (!$mem->getStats()) { /* fallback */ } 做降级兜底。



















