卡在“Loading composer repositories”说明未连上镜像,需验证配置是否生效、URL结尾斜杠、type字段及是否被项目级repositories屏蔽;卡在“Resolving dependencies”与镜像无关,应检查约束过宽、内存不足、扩展缺失或platform硬编码;卡在99%是元数据校验超时,须清缓存并重试。

卡在“Loading composer repositories”说明根本没连上镜像
这一步不是 Composer 在解析依赖,而是连第一个 JSON 文件都失败了。日志里如果还出现 packagist.org/packages.json,说明镜像配置白写了——它压根没生效。
验证是否真走镜像:运行 composer install -vvv,盯住第一行输出。必须看到类似 Downloading https://mirrors.aliyun.com/composer/packages.json 才算成功;否则就是配置错、缓存旧、或 URL 少了结尾斜杠。
-
composer config -g repo.packagist输出必须是{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}—— 缺少type字段、URL 不以/结尾、写成repos.packagist(复数),都会静默失效 - 手动测通路:
curl -I https://mirrors.aliyun.com/composer/packages.json应返回HTTP/2 200和Content-Type: application/json;若返回301、404或超时,说明 DNS/TLS 链路不通,换清华源https://mirrors.tuna.tsinghua.edu.cn/composer/再试 - 项目根目录若存在
composer.json里的repositories字段(哪怕空数组"repositories": []),会直接屏蔽全局配置,删掉或显式设"packagist.org": false
卡在“Resolving dependencies”和镜像无关
这一步 PHP 正在暴力回溯所有版本组合,不发任何网络请求。看到这个卡点就别折腾镜像了,先查本地环境。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 检查
composer.json是否写了宽泛约束,比如"^1.0 || ^2.0"或引入了dev-main的私有包,导致 SAT 求解器爆炸 - 默认内存限制(1.5GB)常不够,尤其含大量
require-dev包时,临时加大:php -d memory_limit=-1 composer install - Webman 等框架依赖
ext-swoole,但 Composer 不报错,只反复降级尝试兼容版本——运行php -m | grep swoole确认扩展已启用;若未装,用pecl install swoole补上 - 删掉
"platform": {"php": "7.4"}这类硬编码,改成当前 PHP 版本(如"8.2"),或加--ignore-platform-reqs快速验证是否环境不匹配
卡在 99% 实为元数据校验失败
ZIP 包其实早下完了,Composer 正卡在从 packagist.org 拉 hash 和版本信息做校验——而这一步在国内基本必超时。镜像只代理 dist 包,不改这个逻辑,但把请求落到 CDN,绕过 TLS 握手失败。
- 必须清缓存:
composer clear-cache,再删vendor/和composer.lock,否则旧快照仍会触发校验请求 - 私有 Git 依赖容易假卡:把
"git@github.com:user/repo.git"改成"https://github.com/user/repo.git",避免 SSH 超时 - GitHub API 请求卡住?配置 Token:
~/.composer/auth.json里加{"github-oauth": {"github.com": "your_token_here"}},Token 需勾选repo权限 - IPv6 干扰常被忽略:加环境变量
COMPOSER_NO_IPV6=1再试,避免每个请求多等 1–2 秒回退 IPv4
换源后仍卡住,得看实际请求路径
别信 config -g 输出,要抓包确认真实行为。CI/CD 中全局配置常因权限失效(如 www-data 读不到 root 的 ~/.composer/config.json),项目级配置更稳。
- 进项目根目录执行:
composer config repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/(不加-g),它会自动往composer.json的repositories数组里追加,不覆盖已有私有源 - CI 中建议隔离缓存:
COMPOSER_CACHE_DIR=$(mktemp -d),避免脏快照跨构建污染 - 元数据缓存默认 15 分钟不重拉——哪怕镜像站已同步新版本,本地仍按旧版算依赖。清缓存是唯一解法,没有捷径
真正卡点往往藏在 composer install -vvv 第一行日志和 curl -I 返回状态之间,而不是堆栈或内存报错里。










