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 找不到。
msvcr140.dll),但部分第三方扩展仍可能拖带旧依赖下载并安装官方 Microsoft Visual C++ 2012 Redistributable 即可,注意选对位数:
php-7.1.33-Win32-VC11-x86.zip),装 x86 版 运行库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 -v
如果正常输出版本号,说明已解决;如果还报错,检查以下几点:
VC1
1(对应 VS2012),不是 VC10(VS2010)或 VC14(VS2015)where php 查看实际调用路径新版 PHP(7.4+)基本都用 VC15/VC16 编译,但只要还在用 VC11 编译的 PHP(比如某些定制版、遗留项目),就绕不开这个依赖。真正省事的做法是:
VC15 或 VC16 编译的 PHP 包(官网下载页明确标注)phpinfo() 页面查 Compiler 行,确认是 MSVC15 还是 MSVC11
最麻烦的不是装一次运行库,而是多个 PHP 版本混用时,VC 版本不一致导致扩展加载失败——这种隐性问题比 msvcr110.dll 报错更难排查。