应安装 microsoft visual c++ 2015–2022 redistributable 的 x64 和 x86 两个版本,而非仅 vs2019 版本;php 8.0 官方二进制依赖该共享运行时,需管理员运行安装包、重启终端后验证 php -v。

直接装 Microsoft Visual C++ 2015–2022 Redistributable,不是只装“VS2019”那个旧包。 PHP 8.0 官方 Windows 二进制版(非线程安全 NTS、x64/x86)明确依赖 vcruntime140.dll,它属于 VC++ 2015–2022 共享运行时,而非单独某个 VS 版本的产物。装错版本或漏装架构,PHP 就起不来。
必须同时安装 x64 和 x86 两个 vc_redist 安装包
哪怕你用的是 64 位 Windows,PHP 8.0 的某些扩展(比如 php_curl.dll 或第三方 COM 组件)可能内部调用 32 位系统 DLL,导致加载 vcruntime140.dll 时去查 SysWOW64 目录。只装 x64 版会失败。
- 下载地址用微软官方短链:
https://aka.ms/vs/17/release/vc_redist.x64.exe(x64)和https://aka.ms/vs/17/release/vc_redist.x86.exe(x86) - 两个安装包都要以管理员身份运行,勾选“我同意许可条款”,点“安装”
- 安装完不重启,
php -v仍可能报错;必须重启 cmd 或 PowerShell 窗口,再试
别信“只装 VS2019 运行库就够”的说法
VC++ 2015–2019 和 2015–2022 是两套不同签名、不同文件哈希的运行时。PHP 8.0 编译时链接的是后者(即 2022 版运行时),装前者无法满足 DLL 导出表签名验证,LoadLibrary 会静默失败。
在 Windows 上执行终端命令,或对比 Windows 与 Linux 的 Shell 语法时使用。建议先检测当前 Shell 是 PowerShell 还是 cmd.exe,再给出相应命令……
- 检查已装版本:控制面板 → “程序和功能” → 搜索 “Microsoft Visual C++” → 看有没有带 “2022” 字样的条目
- 如果只有 “2015–2019”,哪怕版本号看着更新(如 14.29.x),也得卸掉重装 2015–2022
- 不要手动删注册表或系统目录下的
vcruntime140.dll,容易引发连锁损坏
验证 PHP 是否真在用系统级 vcruntime140.dll
PHP 启动时报 “找不到 vcruntime140.dll”,不等于它一定需要从 System32 加载。有时是扩展 DLL 自己打包了错误版本,或路径污染导致加载了旧版。
- 用
Process Explorer(Sysinternals 工具)打开 php.exe 进程 → 查看 “DLLs” 标签页 → 搜索vcruntime,确认加载的是哪个路径下的文件 - 如果看到加载了
D:\php\ext\php_curl.dll同目录下的vcruntime140.dll,说明该扩展自带了运行时,且很可能版本不对 —— 此时应换用官方预编译扩展,或删掉本地同名 DLL - 确保
PATH环境变量里没有指向旧版 VC 运行库的路径(如C:\Program Files (x86)\Microsoft Visual Studio\2019\VC\Redist\MSVC\14.29.30133\)
最容易被忽略的一点:PHP 8.0 的 ZIP 包解压后,php.exe 默认是 64 位,但如果你在 64 位系统上用 32 位命令行(比如旧版 Git Bash 或某些 IDE 内置终端),它会尝试加载 32 位运行时,而你只装了 x64 版 —— 报错就来了。先确认终端架构,再决定装哪个 vc_redist。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










