必须安装微软官方x86和x64双架构vc++2015-2022运行库,因xampp核心进程依赖该系统级组件,手动复制dll无效且危险,sfc/dism也无法修复。

XAMPP 启动失败并提示“找不到 msvcp140.dll”,不是 XAMPP 本身坏了,而是它依赖的底层 C++ 运行时库缺失——这个文件根本不在 XAMPP 安装目录里,它属于系统级组件 Microsoft Visual C++ 2015-2022 Redistributable。直接往 XAMPP 文件夹里丢一个 msvcp140.dll 不仅无效,还可能引发版本冲突或安全风险。
为什么 XAMPP 会报 msvcp140.dll 缺失?
XAMPP 中的 Apache(httpd.exe)、MySQL(mysqld.exe)等核心进程是用 Visual Studio 2015+ 编译的,它们动态链接 msvcp140.dll 来调用标准 C++ 功能(比如字符串处理、异常捕获)。Windows 加载器在启动这些 EXE 时,会按固定顺序搜索 DLL:
- EXE 所在目录(即
XAMPP\apache\bin\等)→ 这里没有 -
C:\Windows\System32\(64 位程序)或C:\Windows\SysWOW64\(32 位程序)→ 这里应该有,但可能被删/损坏/未安装 - PATH 环境变量中的路径 → 通常不包含该 DLL
所以问题永远出在系统层面,而非 XAMPP 安装包本身。
必须安装 x86 和 x64 两个版本的 VC++ 运行库
XAMPP 是 32 位软件套件,但它的部分组件(尤其是较新版本的 mysql.exe 客户端或某些 PHP 扩展)可能混合调用 32 位和 64 位 DLL。只装一个架构会导致“部分功能可用、部分报错”的诡异现象。
XAMPP 8.0.30 是一款免费、开源的跨平台 Web 服务器集成包,专为快速搭建本地 PHP 开发环境而设计。该版本核心组件包括:Apache 2.4.56、MySQL 8.0.33、PHP 8.0.30、phpMyAdmin 5.2.1 等。它支持 Windows、Linux 和 macOS 系统,可让开发者在个人电脑上轻松模拟服务器环境,无需复杂配置即可运行 WordPress、Thin
- 即使你的系统是 64 位 Windows,也必须同时安装:
vc_redist.x86.exe(给 32 位进程用)和vc_redist.x64.exe(给 64 位系统服务/兼容层用) - 去微软官网下载最新版
Microsoft Visual C++ 2015-2022 Redistributable(注意:不是“2015 单独版”,要选带“2015-2022”字样的合并包) - 安装顺序无关紧要,但建议先卸载旧版:控制面板 → “程序和功能” → 搜索
Microsoft Visual C++→ 卸载所有带“2015”“2017”“2019”“2022”字样的旧条目,再安装新包
sfc /scannow 能修好,但别指望它自动补全 VC++ DLL
sfc /scannow 只校验并恢复 C:\Windows\System32\ 和 SysWOW64\ 下由 Windows 自己签名的系统文件(如 kernel32.dll),而 msvcp140.dll 是微软第三方运行库,不属于 Windows OS 组件,sfc 对它完全无感。
- 执行
sfc /scannow后如果提示“未发现任何完整性冲突”,说明系统文件完好,但msvcp140.dll依然可能缺失——这恰恰证明问题出在 VC++ 运行库没装,而不是系统损坏 - 真正该跑的是
DISM /Online /Cleanup-Image /RestoreHealth,但它也管不了 VC++ 包;它只修复 Windows 映像源,不注入第三方运行时 - 所以看到
sfc没报错,就立刻转向安装 VC++ 运行库,别浪费时间等它“顺便修好”
千万别手动下载或复制 msvcp140.dll 文件
网上搜到的独立 msvcp140.dll 文件几乎都不可信:
- 来源不明的 DLL 可能被植入后门,尤其当你从非官方站点下载时
- 即使文件本身干净,版本号(如
V14.29.30133.0)若与你的 VC++ 运行库不匹配,会导致 Apache 启动后立即崩溃(错误日志里出现STATUS_ACCESS_VIOLATION) - 把 DLL 放进
XAMPP\apache\bin\目录看似“绕过系统查找”,但违反 Windows DLL 加载策略,PHP 或 Perl 模块仍会尝试加载系统路径下的版本,最终冲突 - 注册命令
regsvr32 msvcp140.dll对这类 C++ 运行时库完全无效——它只适用于 COM 组件,而msvcp140.dll不是 COM 库
最常被忽略的一点:XAMPP 的 Apache 服务如果是以 Local System 账户运行的,它加载 DLL 的权限上下文与你当前用户不同,手动放文件进去根本不会被读取。










