登录
首页 >  文章 >  php教程

XAMPP环境下配置Memcached XAMPP缓存加速设置教程

时间:2026-05-05 21:24:59 404浏览 收藏

一分耕耘,一分收获!既然都打开这篇《XAMPP环境下配置Memcached XAMPP缓存加速设置教程》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新文章相关的内容,希望对大家都有所帮助!

Windows下XAMPP配置Memcached需严格匹配php_memcache.dll与PHP环境(VC版本、TS/NTS、位数),正确安装memcached.exe服务,修改对应php.ini启用扩展,重启Apache,并用new Memcache()测试连接与读写。

XAMPP环境下配置Memcached XAMPP缓存加速设置教程

Windows 下 XAMPP 配置 Memcached 不能只靠“启用扩展”就完事,php_memcache.dllmemcached.exe 必须严格匹配你的 PHP 编译环境(VC 版本、TS/NTS、位数),否则 phpinfo() 里永远看不到 memcache 模块,new Memcache() 会直接报类未定义。

确认 PHP 环境细节再下载 dll

打开 http://127.0.0.1/phpinfo(),重点看三行:

  • PHP Version:比如 7.4.33
  • Thread Safety:显示 enabled 就是 TS,disabled 是 NTS
  • Compiler:比如 MSVC15 (Visual C++ 2019) 或旧版的 MSVC14/MSVC11

这些决定了你该去哪下 php_memcache.dll —— 官方 PECL 已停止维护 Windows 二进制包,必须从可信第三方归档站(如 pecl.php.net/package/memcache/3.0.8/windows)找对应组合的 dll。常见坑:

  • PHP 7.4 VC15 TS → 要 php_memcache-3.0.8-7.4-ts-vc15-x64.dll
  • PHP 8.0+ 不再支持 memcache 扩展(只有 memcached,需 libmemcached 依赖)
  • 把 32 位 dll 放进 64 位 PHP 的 ext/ 目录,Apache 启动会静默失败

memcached.exe 服务安装常卡在权限和端口

memcached.exe 不是双击运行的程序,必须用管理员权限的命令行操作:

  • 以管理员身份运行 cmd,cd 到 memcached.exe 所在目录(如 D:\memcached
  • 执行 memcached.exe -d install,若提示 “service already exists”,先运行 memcached.exe -d uninstall
  • 启动后检查端口是否真被占用:netstat -ano | findstr :11211,有 PID 才算活
  • 别用 telnet 127.0.0.1 11211 测试——它只验证端口通不通,不验证协议是否响应;真正有效的是用 PHP 连:$m = new Memcache(); $m->connect('127.0.0.1', 11211);

php.ini 配置位置和顺序很关键

XAMPP 可能有多个 php.ini:Apache 用的是 \xampp\apache\bin\php.ini,CLI 用的是 \xampp\php\php.ini。配置必须写在 Apache 对应的那个文件里:

  • extension= 区块末尾添加 extension=php_memcache.dll(不要带路径,dll 必须在 ext/ 目录)
  • [Memcache] 段落可选,但 memcache.default_port = 11211 建议显式写上,避免硬编码端口不一致
  • 改完必须重启 Apache(不是只刷新页面),且要确认 Apache 启动日志里没报 PHP Warning: PHP Startup: Unable to load dynamic library

测试代码要区分 memcache 和 memcached 扩展

很多人卡在测试环节,是因为混淆了两个不同扩展:

  • memcache(旧版,类名 Memcache,无 SASL 认证,仅支持文本协议)→ 用 new Memcache()
  • memcached(新版,类名 Memcached,支持二进制协议/SASL,性能更好)→ 用 new Memcached()

如果你装的是 php_memcache.dll,下面这段才是有效测试:

 <?php
$m = new Memcache();
if ($m->connect('127.0.0.1', 11211)) {
    $m->set('test_key', 'This is a test!', 0, 60);
    echo $m->get('test_key');
} else {
    echo 'Connection failed';
}
?>

输出 This is a test! 才算真正跑通。最常被忽略的是:XAMPP 自带的 phpinfo() 页面缓存可能没刷新,务必强制 Ctrl+F5,或改个 URL 参数再访问。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于文章的相关知识,也可关注golang学习网公众号。

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>