报错“permission denied”主因是vendor/属主为root而非当前用户,应先用ls -ld vendor/确认,若显示root root则执行sudo chown -r $user:$user vendor/修复,禁用chmod -r 777。

报错里带“Permission denied”就先查 vendor/ 归属
这不是权限数字没设够,而是 vendor/ 目录被 sudo composer install 污染过,导致所有子目录属主变成 root。普通用户后续写 autoload.php 或更新包时必然失败。
执行这行命令确认:ls -ld vendor/
如果输出第一列含 root root(比如 drwxr-xr-x 12 root root),问题就在这儿。
- 修复命令:
sudo chown -R $USER:$USER vendor/ - 别碰
chmod -R 777——它会让 CI 拒收可执行文件,还可能破坏 Git 的 ownership tracking - 删掉整个
vendor/重装比逐个修更稳妥,前提是确认当前用户对项目根目录有完整写权限
卡在 “Loading composer repositories” 多半是镜像没配对
国内直连 packagist.org 基本不可靠,但错误常被误判为网络问题。真实原因是镜像配置静默失败,Composer 2.x 会自动 fallback 到官方源,不报错也不提醒。
验证是否真生效:composer config -g repo.packagist
输出必须是完整 JSON 对象,例如:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}
如果为空、null 或报错,说明根本没写进去。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 正确命令:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(注意三要素:单数repo.packagist、中间composer是 type 值、URL 末尾必须带/) - 切镜像后必须清缓存:
composer clear-cache,否则旧失败路径还在缓存里 - 删掉
composer.lock和vendor/再跑composer install,否则 lock 文件里硬编码的旧 provider 地址会继续触发 404
“Your requirements could not be resolved” 是依赖冲突,不是网络或权限问题
这个错误说明 Composer 已经拿到全部元数据,但在本地求解版本组合时发现约束打架。跟镜像、PATH、SSL 都无关。
直接定位拦路包:composer why-not php:8.3(把 8.3 换成你目标 PHP 版本)
输出会明确告诉你哪个包锁死了低版本,比如:laravel/framework v10.42.0 requires php ^8.1,而另一个包要求 php: ^7.4
- 检查
composer.json里有没有写死版本号,例如"monolog/monolog": "2.9.0",和新包的^3.0无交集 - 确认 CLI 环境真实可用:
php -v和php -m | grep -E "mbstring|openssl|curl",Web 页面的phpinfo()不代表 CLI -
--ignore-platform-reqs只是临时绕过,上线前必须让代码真兼容目标环境
“command not found” 就是 PATH 没生效,不是 Composer 没装
Windows 上报这个错,90% 是 PATH 加错了位置。系统根本没找到 composer.bat,而不是 PHP 或 Composer 安装失败。
确认路径:echo %PATH% 看输出里有没有 C:\ProgramData\ComposerSetup\binwhere composer 应返回类似 C:\ProgramData\ComposerSetup\bin\composer.bat
- PATH 里加的是目录,不是文件名;只到
bin目录,别多加反斜杠或空格 - 改完必须关掉所有已打开的 CMD/PowerShell/VS Code 终端,再新开一个——旧进程不读新
PATH - 全局命令(如
laravel)要额外加%COMPOSER_HOME%\vendor\bin到PATH,否则composer global require装了也找不到
repositories 字段屏蔽了全局配置。遇到连环报错时,先盯住终端第一行真实错误,别被后续衍生错误带偏。










