vcruntime140.dll与使用14.44构建的PHP 8.4不兼容的解决方法

我在Windows server 2012系统安装了php-8.4.13-Win32-vs17-x64-ThreadSafe,并把安装路径加入path环境变量,我打开一个CMD窗口,运行:

php -v

报错:

vcruntime140.dll与当前使用14.44构建的PHP不兼容

引起这个错误的原因是,PHP 8.4.13(Win32-vs17-x64-ThreadSafe)是用 Visual Studio 2022(VS17) 编译的,依赖 vcruntime140.dll 版本 14.4x(报错信息中的14.44是内部版本)。而 Windows Server 2012 系统里现有的 vcruntime140.dll 是旧版 14.13(通常来自 Visual C++ 2017 或更早的 2015-2019 Redistributable),PHP 启动时做版本检查失败,直接报不兼容错误。

这是 PHP Windows 官方构建从 8.4 开始切换到 VS17 后最常见的错误。

解决方案(推荐步骤,按顺序操作)
1 下载正确的 Visual C++ Redistributable
官方推荐(PHP 官方文档和 windows.php.net 明确要求):

这两个链接永远指向微软最新的 2015-2022 合并包。

2 安装 Redistributable

以 管理员身份 运行两个 exe。

如果已经安装过旧版,安装程序会提示“修复”或直接升级——请选择 修复/安装。

安装完成后重启服务器(或至少重启一下 Explorer.exe / 注销再登录)。

3 验证是否解决了这个问题
重新打开 管理员 CMD,执行:

php -v

应该正常显示 PHP 8.4.13 版本信息,不再报 vcruntime140.dll 不兼容错误。

注意事项

  • Windows Server 2012 虽然已于 2023 年 EOL,但 PHP 官方明确支持到 8.4+(PHP 手册写明最低 Windows 8 / Server 2012)。
  • 最新的 VC++ 2015-2022 Redistributable 仍然可以在 Windows Server 2012 上成功安装并升级 DLL(社区和 PHP 用户已验证)。
  • 如果安装程序提示“不支持此操作系统”,请先安装 Windows Server 2012 的最新补丁(通过 Windows Update),再尝试。