先验证PHP环境是否达标,再启用Windows长路径支持;运行php -v确认版本≥7.4,php -m检查curl/json/openssl等扩展,通过gpedit.msc或注册表开启LongPathsEnabled并重启系统,最后将项目移至D:\p\myapp等短路径。

Windows 上 Composer 安装失败,95% 是 PHP 环境或系统路径限制问题,不是网络或权限本身。先验证 PHP 是否就位、再放开长路径,比反复重装 Composer 有效得多。
检查 PHP 版本与必需扩展是否启用
Composer 不是独立程序,它依赖 PHP 运行。报错如 Call to undefined function curl_init() 或 requires PHP >= 8.0,说明 PHP 环境不达标。
- 运行
php -v确认版本 ≥ 7.4(推荐 ≥ 8.0);低于该版本会直接拒绝执行 - 运行
php -m | findstr /I "curl json openssl phar zlib"(Windows CMD),缺哪个就去php.ini里取消对应extension=行的注释 - 注意:XAMPP/MAMP 用户必须修改 CLI 模式下的
php.ini(通常在php\phpX.X.X\目录),不是 Apache 用的那个 - 若
php -v报错“不是内部或外部命令”,说明php.exe所在目录没进PATH,需手动添加
启用 Windows Win32 长路径支持(必须第一步)
不开启此项,后续所有“缩短路径”操作都只是临时缓解,且 composer install --prefer-source 或某些 Git 操作仍会失败。
Windows 桌面自动化技能,支持鼠标控制(移动/点击/拖拽/滚轮/截图)、键盘输入(文字输入/按键/组合键)、窗口管理(查找/聚焦/最大化/最小化/关闭/移动)、截图并发送文件。提供两种截图方式:Python pyautogui 截图(集成在自动化流程中)和 PowerShell + .NET 零依赖截图(支持区域截图和多显示器)。当用户需要自动化 Windows 桌面操作、控制鼠标键盘、管理窗口、执行 GUI 自动化任务、截图发送文件时使用。
- 按
Win + R输入gpedit.msc→ 计算机配置 → 管理模板 → 系统 → 文件系统 → 启用“启用 Win32 长路径” - 家庭版无
gpedit?改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,将LongPathsEnabled的DWORD值设为1 - 修改后必须重启终端(CMD/PowerShell/Git Bash)或整个系统——仅关闭再打开窗口无效,旧进程策略缓存未刷新
修复 PATH 过长或重复导致的 exec 失败
报错含 CreateProcess failed、command not found 或安装脚本卡住,大概率是 PATH 被污染,而非 Composer 本身故障。
- 运行
echo %PATH% | powershell -Command "$input.Length"查看当前长度;超 2048 字符易出问题 - 重点清理重复项:
%APPDATA%\Composer\vendor\bin常被 IDE 或旧版 Laravel Installer 多次写入PATH - 用系统设置 → 环境变量,彻底删除用户和系统两级中所有指向该目录的条目
- 改用绝对路径调用 bin 工具,例如直接运行
"%APPDATA%\Composer\vendor\bin\phpunit.bat",绕过PATH解析
解决 SSL 证书验证失败(cURL error 60)
错误信息含 certificate verify failed、SSL3_GET_SERVER_CERTIFICATE,本质是 PHP 的 OpenSSL 无法校验 HTTPS 证书,和网络连通性无关。
- 下载最新
cacert.pem(来自 curl.se),保存为C:\php\cacert.pem等短路径 - 在
php.ini中设置:curl.cainfo = "C:/php/cacert.pem"(注意用正斜杠或双反斜杠) - 同时确认
openssl.cafile也指向同一文件(部分旧版 PHP 优先读此配置) - 重启终端后运行
php -r "print_r(openssl_get_cert_locations());"验证路径是否生效
最常被忽略的是:开了长路径但项目仍放在 C:\Users\YourName\Documents\GitHub\ 这类默认长前缀路径下,加上 vendor 嵌套,实际路径仍可能突破旧工具链隐式限制。把项目挪到 D:\p\myapp 这类极短路径,配合长路径开启,才是稳解。其他方案都是补丁,不是根治。

















