错误因Windows路径长度超限导致Composer解压失败,解决方法包括:1. 启用LongPathsEnabled注册表项以支持长路径;2. 将项目移至短路径如C:\project并清理缓存;3. 使用composer install --prefer-source避免压缩包解压;4. 更新PHP和Composer版本。优先推荐启用系统长路径支持。

这个错误是因为 Windows 系统对文件路径长度有限制(通常为 260 个字符),而 Composer 在解压某些嵌套较深的依赖包时,生成的完整路径超出了系统限制。
问题原因
Windows 默认启用 MAX_PATH 限制,当 Composer 解压包含深层目录结构的包时,目标路径可能超过 260 字符,导致 ZipArchive::extractTo() 失败。
解决方案
注意:以下方法适用于 Windows 系统。1. 启用长路径支持(推荐)
修改注册表或组策略,允许 Windows 支持更长的路径:
- 打开注册表编辑器(regedit)
- 定位到:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem - 将
LongPathsEnabled的值改为 1(如不存在则新建 DWORD 32-bit)
重启后生效。之后 PHP 的 ZipArchive 就能处理更长路径。
2. 修改 Composer 缓存和项目路径
将项目移到磁盘根目录下,缩短基础路径:
- 例如从:
C:\Users\YourName\Documents\projects\deep\nested\project
移到:C:\project - 同时可清理 Composer 缓存以减少临时路径深度:
composer clear-cache
3. 使用 --prefer-source 安装(临时绕过)
避免使用压缩包安装,改用源码克隆:
composer install --prefer-source- Git 克隆通常不会触发 ZipArchive 路径限制
4. 更新 PHP 和 Composer
确保使用较新版本的 PHP(>=7.4)和 Composer,它们对长路径的支持更好。
基本上就这些方法,优先启用系统长路径支持最彻底。









