17370845950

php下载安装报错api-ms-win-crt-runtime-l1-1-0dll缺失怎么办【解答】
Windows 7 SP1 用户运行 PHP 7.2+ 需先安装 KB2999226 补丁,再安装 VC++ 2015–2019 运行时(vs16),并选用匹配的 PHP 包(如 php-8.1.23-Win32-vs16-x64.zip),三者缺一不可。

这个问题不是 PHP 本身的问题,而是 Windows 系统缺少 Visual C++ 运行时组件导致的,api-ms-win-crt-runtime-l1-1-0.dll 属于 UCRT(Universal C Runtime),从 Windows 10 开始内置,但旧系统(如 Windows 7 SP1)需要手动补全。

Windows 7 必须安装 KB2999226 补丁

这是最常见也最容易被跳过的一步。PHP 7.2+ 和所有新版 Windows 二进制包都依赖此更新,未安装会导致启动 php.exe 直接报错“找不到指定模块”或弹窗提示缺失 api-ms-win-crt-runtime-l1-1-0.dll

  • 必须先确认系统已装 Windows 7 SP1(非 SP1 不支持该补丁)
  • 下载地址:微软官方 KB2999226(x64 或 x86 版本需与你的系统位数一致)
  • 安装后必须重启,否则 DLL 不会注册进系统路径
  • 若通过 Windows Update 安装失败,建议用离线安装包(wu_web.exe 方式常静默失败)

安装 Visual C++ 2015–2025 运行时(推荐全装)

即使 KB 补丁已装,部分 PHP 扩展(如 php_curl.dllphp_openssl.dll)仍可能链接到 MSVCRT 的不同版本,单独装运行时更稳妥。

  • 去微软官网下载 vc_redist.x64.exevc_redist.x86.exe(即使 64 位系统也建议两个都装——PHP 解释器是 64 位,但某些扩展或调用的 DLL 可能是 32 位)
  • 安装顺序无关,但建议先装 2015–2019,再装 2025(后者向后兼容,但不替代前者)
  • 不要只装“最新版”,php-8.2.12-Win32-vs16-x64.zip 明确依赖 VS2019(即 2015–2019 运行时),vs16 = Visual Studio 2019 编译

检查系统 PATH 和 DLL 加载路径

补丁和运行时装完仍报错?可能是 PHP 启动时没找到 DLL,或被错误版本劫持。

  • 运行 echo %PATH%,确认没有指向老旧 VC 运行时的自定义路径(比如某软件自带的 msvcr120.dll 目录)
  • where api-ms-win-crt-runtime-l1-1-0.dll 查看系统是否真能找到该 DLL(正常应返回 C:\Windows\System32\api-ms-win-crt-runtime-l1-1-0.dll
  • 若返回空,说明 KB 补丁未生效或系统文件损坏,可尝试运行 sfc /scannow
  • 不要手动下载网上流传的单个 DLL 文件丢进 System32——这大概率引发签名验证失败或版本冲突

PHP 下载包选型要匹配编译环境

下载页面里一堆 vs15 / vs16 / vs17 标签,不是随便选的。选错等于白装运行时。

  • vs15 → Visual Studio 2015 → 需要 VC++ 2015 运行时
  • vs16 → Visual Studio 2019 → 需要 VC++ 2015–2019 运行时
  • vs17 → Visual Studio 2025 → 需要 VC++ 2015–2025 运行时
  • Windows 7 用户请勿下载 vs17 包(官方已明确不支持),哪怕它看起来“更新”
  • PHP 官网下载页底部有表格注明各版本对应系统要求,php-8.1.23-Win32-vs16-x64.zip 一行写着 “Requires: Windows 7 SP1 or newer”

真正卡住的人,往往是在没装 KB2999226 的前提下反复重装 VC 运行时,或者下了 vs17 包硬跑在 Win7 上。补丁、运行时、PHP 包三者版本对不上,任何一环断掉都会回到原点。