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)需要手动补全。
这是最常见也最容易被跳过的一步。PHP 7.2+ 和所有新版 Windows 二进制包都依赖此更新,未安装会导致启动 php.exe 直接报错“找不到指定模块”或弹窗提示缺失 api-ms-win-crt-runtime-l1-1-0.dll。
wu_web.exe 方式常静默失败)即使 KB 补丁已装,部分 PHP 扩展(如 php_curl.dll、php_openssl.dll)仍可能链接到 MSVCRT 的不同版本,单独装运行时更稳妥。
vc_redist.x64.exe 和 vc_redist.x86.exe(即使 64 位系统也建议两个都装——PHP 解释器是 64 位,但某些扩展或调用的 DLL 可能是 32 位)php-8.2.12-Win32-vs16-x64.zip 明确依赖 VS2019(即 2015–2019 运行时),vs16 = Visual Studio 2019 编译补丁和运行时装完仍报错?可能是 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)sfc /scannow
System32——这大概率引发签名验证失败或版本冲突下载页面里一堆 vs15 / vs1
6 / vs17 标签,不是随便选的。选错等于白装运行时。
vs15 → Visual Studio 2015 → 需要 VC++ 2015 运行时vs16 → Visual Studio 2019 → 需要 VC++ 2015–2019 运行时vs17 → Visual Studio 2025 → 需要 VC++ 2015–2025 运行时php-8.1.23-Win32-vs16-x64.zip 一行写着 “Requires: Windows 7 SP1 or newer”真正卡住的人,往往是在没装 KB2999226 的前提下反复重装 VC 运行时,或者下了 vs17 包硬跑在 Win7 上。补丁、运行时、PHP 包三者版本对不上,任何一环断掉都会回到原点。