跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

phpEnv启动提示API-MS-WIN-CRT-RUNTIME报错解决

phpEnv启动卡在api-ms-win-crt-runtime报错,因依赖的Universal C Runtime(UCRT)缺失或版本不匹配:Windows 7需先装KB2999226再装KB3118401;Win10/11若禁用更新则需DISM+sfc修复;必须安装官方VC++ 2015–2022红istributable且与系统位数一致,并验证php--version和httpd-t是否通过。 直接装
vc_redist.x64.exe
(或
vc_redist.x86.exe
)基本就能解决,但必须确认系统已打关键补丁,否则安装会静默失败或报错“0x80240017”。 为什么 php Env 启动会卡在 api-ms- win -crt-runtime 报错 phpEnv 本身不自带运行库,它依赖 Windows 系统级的 Universal C Runtime(UCRT)。这个运行时由
api-ms-win-crt-*.dll
文件组成,不是普通 DLL,而是“API Set”转发层——它们不包含实际代码,只负责把调用转给
ucrtbase.dll
。一旦系统缺少 UCRT 基础组件或版本不匹配,phpEnv 启动时加载 PHP 或 Apache 的二进制模块就会失败。 常见触发点: Windows 7 未升级到 SP1,或 SP1 已装但没打 KB2999226 / KB3118401 系统是干净重装的 Windows 10/11,但被禁用了 Windows Update,导致 UCRT 未随系统更新自动部署 手动删过
C:\Windows\System32\api-ms-win-crt-*.dll
(极危险,别这么干) 装了多个 VC++ 运行库,但 2015–2022 版本混装冲突,尤其 32/64 位错配 先查系统是否满足最低补丁要求 打开命令提示符(管理员),逐条执行: 立即学习 “ PHP免费学习笔记(深入) ”;
systeminfo | findstr "OS Name OS Version"
确认输出中含
Windows 7 Service Pack 1
或
Windows 10
及以上。再查补丁:
wmic qfe list | findstr "KB2999226\|KB3118401"
如果无输出,说明缺失关键 UCRT 补丁。此时: Windows 7:必须先装
KB2999226
(基础 UCRT),再装
KB3118401
(安全更新),顺序不能反 Windows 10 1607+:通常自带 UCRT,但若关闭过更新,需手动运行
DISM /Online /Cleanup-Image /RestoreHealth
+
sfc /scannow
别信“一键修复工具”,它们常绕过补丁依赖检查,装完仍报错 正确安装 VC++ 运行库的顺序和版本 phpEnv 官方文档明确要求 Visual C++ 2015–2022 Redistributable(因 PHP 官方编译链使用 MSVC 2019)。不要只装 2015 版,也不要跳着装 2017 或 2019 单独版。 PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 操作步骤: 从微软官方页下载
vc_redist.x64.exe
(64 位系统)或
vc_redist.x86.exe
(32 位系统): 最新 2015–2022 合集 卸载控制面板里所有旧版
Microsoft Visual C++ 20xx Redistributable
(尤其是带 “Update” 字样的非官方打包版) 以管理员身份运行下载的
vc_redist.x64.exe
,勾选“为所有用户安装”,不要跳过重启提示 装完后检查
C:\Windows\System32\ucrtbase.dll
文件属性 → “详细信息”标签页,文件版本应 ≥
10.0.19041.1
(对应 Win10 2004) 验证 phpEnv 是否真能启动,而不是掩盖错误 很多人装完运行库就以为好了,结果 phpEnv 界面能开、Apache 却起不来,或 PHP 命令行报
0xc000007b
。这是因为: phpEnv 自带的 Apache/PHP 是 64 位,但你装了 32 位运行库(或反之)
PATH
环境变量里有旧版
msvcr120.dll
等干扰项,导致加载错版本 杀毒软件拦截了
ucrtbase.dll
的内存映射(常见于火绒、360) 验证方法:在 phpEnv 安装目录下打开命令行,直接运行:
php --version
如果返回版本号,说明 PHP 本体已通;再运行:
httpd -t
若提示语法正常,则 Apache 配置也通过。两者都成功,才是真修复。任何一步失败,都要回溯补丁 + 运行库 + 系统架构三者是否严格一致。 最易被忽略的一点:Windows 7 用户即使装了全部补丁和运行库,若系统语言包非简体中文或英文,某些 UCRT 组件仍可能加载失败——此时需额外安装对应语言的
LCID
补丁,而非换 DLL 文件。

相关文章