php下载安装报错msvcr110dll丢失怎么办_修复方案【解答】

PHP报msvcr110.dll丢失错,本质是缺少Visual C++ 2012运行库;需按PHP位数安装对应VC2012 Redistributable(x86/x64),装后重启命令行运行php -v验证。

PHP 下载安装后报错 msvcr110.dll 丢失,本质是运行环境缺 Visual C++ 2012 运行库,不是 PHP 本身问题,直接装对应 VC 运行库即可解决。

为什么报这个错?

PHP Windows 二进制包(尤其是非线程安全 NTS 版、或旧版如 5.6/7.0/7.1)编译时依赖 Microsoft Visual C++ 2012 运行时,而该运行库不会随 PHP 自动安装。系统若没装过 VS2012 或其运行库,启动 php.exe 或 Apache 加载 php7.dll 时就会弹窗提示 msvcr110.dll 找不到。

  • 仅影响 Windows 系统,Linux/macOS 不会出现
  • 常见于手动解压 ZIP 包安装、或用旧版 XAMPP/WAMP 的用户
  • PHP 7.2+ 多数改用 VS2015(msvcr140.dll),但部分第三方扩展仍可能拖带旧依赖

怎么快速修复?

下载并安装官方 Microsoft Visual C++ 2012 Redistributable 即可,注意选对位数:

  • 如果你用的是 32 位 PHP(php-7.1.33-Win32-VC11-x86.zip),装 x86 版 运行库
  • 如果你用的是 64 位 PHP(php-7.0.33-Win32-VC11-x64.zip),需同时装 x86 和 x64 版(因 Apache/IIS 进程可能是 32 位)
  • 不要试图复制 msvcr110.dllsystem32 或 PHP 目录——易引发 DLL 冲突或权限问题

官方下载地址(微软官网,安全):
Microsoft Visual C++ 2012 Redistributable (x86)
Microsoft Visual C++ 2012 Redistributable (x64)

验证是否修好了?

装完重启命令行(CMD/PowerShell),再运行:

php -v

如果正常输出版本号,说明已解决;如果还报错,检查以下几点:

  • 确认安装的是 VC11(对应 VS2012),不是 VC10(VS2010)或 VC14(VS2015)
  • PHP 是 NTS 版但你装了 TS 版运行库?不用管,Redist 包含两者
  • 杀毒软件拦截了 DLL 加载?临时禁用试试
  • PATH 中指向了其他旧版 PHP 目录?用 where php 查看实际调用路径

后续避免这类问题的小建议

新版 PHP(7.4+)基本都用 VC15/VC16 编译,但只要还在用 VC11 编译的 PHP(比如某些定制版、遗留项目),就绕不开这个依赖。真正省事的做法是:

  • 优先选用 VC15VC16 编译的 PHP 包(官网下载页明确标注)
  • phpinfo() 页面查 Compiler 行,确认是 MSVC15 还是 MSVC11
  • 开发机建议一次性装齐 VC2010–VC2019 各版本 Redist(微软提供“所有运行库合集”第三方打包版,谨慎甄别来源)

最麻烦的不是装一次运行库,而是多个 PHP 版本混用时,VC 版本不一致导致扩展加载失败——这种隐性问题比 msvcr110.dll 报错更难排查。