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.dll到system32或 PHP 目录——易引发 DLL 冲突或权限问题
官方下载地址(微软官网,安全):
Microsoft Visual C++ 2012 Redistributable (x86)
Microsoft Visual C++ 2012 Redistributable (x64)
验证是否修好了?
装完重启命令行(CMD/PowerShell),再运行:
立即学习“PHP免费学习笔记(深入)”;
php -v
如果正常输出版本号,说明已解决;如果还报错,检查以下几点:
- 确认安装的是
VC11(对应 VS2012),不是 VC10(VS2010)或 VC14(VS2015) - PHP 是 NTS 版但你装了 TS 版运行库?不用管,Redist 包含两者
- 杀毒软件拦截了 DLL 加载?临时禁用试试
- PATH 中指向了其他旧版 PHP 目录?用
where php查看实际调用路径
后续避免这类问题的小建议
新版 PHP(7.4+)基本都用 VC15/VC16 编译,但只要还在用 VC11 编译的 PHP(比如某些定制版、遗留项目),就绕不开这个依赖。真正省事的做法是:
- 优先选用
VC15或VC16编译的 PHP 包(官网下载页明确标注) - 用
phpinfo()页面查Compiler行,确认是MSVC15还是MSVC11 - 开发机建议一次性装齐 VC2010–VC2019 各版本 Redist(微软提供“所有运行库合集”第三方打包版,谨慎甄别来源)
最麻烦的不是装一次运行库,而是多个 PHP 版本混用时,VC 版本不一致导致扩展加载失败——这种隐性问题比 msvcr110.dll 报错更难排查。











