You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地运行Yii项目报MemCache需加载PHP memcache扩展错误

MemCache扩展加载失败排查解决步骤

报错核心是Windows本地环境下PHP扩展匹配错误、依赖缺失,和已安装的memcache服务本身无关,按以下顺序排查:

1. 下载完全匹配环境的扩展版本

从你执行php --version的输出可以得到当前PHP环境参数:PHP 7.4.26、ZTS线程安全、VC15(Visual C++ 2017)编译、x64架构,下载的扩展dll必须100%匹配这几个参数,任意一项不匹配都会加载失败:

  • 扩展版本必须对应PHP 7.4.x系列,不能混用7.3、8.0等其他大版本
  • 必须选择ZTS(线程安全)版本,不能选NTS非线程安全版本
  • 必须选择VC15编译的版本,不能选VC11、VC14等其他编译版本
  • 必须选择x64架构版本,不能选x86版本
  • 注意区分两个同名扩展:
    • memcache(不带尾缀d):老版本扩展,无额外依赖,新手本地开发优先选这个,安装难度低
    • memcached(带尾缀d):新版本扩展,依赖libmemcached库,配置更复杂
      Yii的yii\caching\MemCache类对两个扩展都兼容,不用纠结必须装哪个。

2. 修正扩展文件与配置错误

  • 把下载到的正确版本dll放到当前PHP版本的扩展目录:C:\wamp64\bin\php\php7.4.26\ext,确保文件名正确,不要出现php_memcached.dll.dll这类双后缀错误
  • WAMP环境存在两套php.ini配置,分别给CLI命令行、Apache Web服务使用,不要只改其中一个。直接点击WAMP托盘图标,选择PHP->php.ini打开配置文件,在扩展加载段添加对应配置:
    装memcache就加extension=php_memcache.dll,装memcached就加extension=php_memcached.dll,文件名和你放到ext目录的dll文件名完全一致
  • 修改配置后必须完全重启WAMP所有服务,不能只重启Apache。

3. 补全扩展依赖

如果版本匹配、配置正确还是加载失败,基本是缺失系统依赖:

  • 安装VC15(Visual C++ 2017 Redistributable)x64运行库,安装完成后重启电脑
  • 如果安装的是带d的memcached扩展,需要把扩展压缩包内附带的libmemcached.dll等依赖文件,放到PHP根目录(和php.exe同目录,即C:\wamp64\bin\php\php7.4.26\),或者放到C:\Windows\System32目录,否则会提示找不到指定模块。

4. 验证加载状态

  • 命令行执行php -m,查看输出的已加载扩展列表,存在memcache/memcached项说明CLI环境加载成功
  • CLI验证通过后,在web根目录新建phpinfo.php,写入代码<?php phpinfo();,浏览器访问该文件,查看Web环境下是否加载了对应扩展——CLI和Web环境的PHP配置可能不一致,两边都加载成功才算配置完成。

5. 本地开发免折腾方案

如果不想反复调试扩展,本地开发阶段可以直接修改Yii配置绕过memcache依赖,不需要改动业务代码:
找到后端配置文件backend/config/main-local.php,把cache组件配置改成文件缓存即可:

'cache' => [
    'class' => 'yii\caching\FileCache',
],

保存后刷新页面,memcache扩展缺失的报错就会消失,本地开发场景下文件缓存完全可以满足调试需求。


内容的提问来源于stack exchange,提问作者Amir Dora.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 07:51:18