换镜像能解决90%的Composer更新慢问题,但必须同时满足三个硬性条件:键名必须为repo.packagist(单数)、type值必须显式指定为composer、URL须为HTTPS且末尾带斜杠,缺一则静默回退官方源。

换镜像能解决 90% 的 Composer 更新慢问题,但配错一个字符就等于没配——不是网络差,是根本没走镜像。
镜像配置必须满足三个硬性条件
Composer 2.x 要求严格,缺一不可,否则静默 fallback 到 packagist.org:
-
repo.packagist是唯一合法键名(注意是 repo 单数,不是repos.packagist) - 必须显式指定
type值为composer,漏掉它会直接退回到官方源 - URL 必须是 HTTPS 且末尾带斜杠:
https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌(少斜杠会导致拼成/composerpackages.json,404)
正确命令:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
验证是否生效:
composer config -g repo.packagist
输出应为完整 URL 字符串或标准 JSON 对象,如 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。空、null 或仍是 https://repo.packagist.org,说明没写进去。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
为什么 composer clear-cache 不可跳过
缓存里存着旧的 packages.json 和 provider-*.json 元数据,Composer 默认 15 分钟内不过期,优先读本地缓存再校验远程地址——哪怕你刚切了镜像,它仍可能反复尝试从 https://packagist.org 拉索引,卡在 DNS 解析或 TLS 握手阶段。
- 执行
composer clear-cache(不是已废弃的composer cache-clear) - 看到两行输出:
Clearing cache (cache-dir):和Clearing cache (cache-vcs): - 临时绕过缓存验证:加
--no-cache跑一次composer install -vvv,看日志里请求的是哪个域名
composer update 显示 “Nothing to install or update” 却有新版本
这不是镜像没同步,而是元数据缓存没刷新。Packagist 页面和阿里云镜像站都显示 monolog/monolog v3.6.0 已发布,但本地还在用旧 packages.json 算依赖。
- Composer ≥ 2.5:直接运行
composer update --refresh,它只丢弃packages.json和provider-*.json,强制从当前镜像源重拉最新元数据,不删 ZIP 包、不重装、不重建 lock 文件 - Composer ≤ 2.4:不支持
--refresh,只能手动删缓存子目录:rm -rf $(composer config --global cache-dir)/repo/https---mirrors-aliyun-com-composer - 验证镜像是否真同步:用
curl -I https://mirrors.aliyun.com/composer/packages.json查Last-Modified时间,比你上次更新早,说明镜像已更新,但本地没拉
项目级配置比全局更可靠
全局配置容易被覆盖或权限不一致(比如宝塔用 www 用户执行,而 -g 配的是 root),项目级配置写进 composer.json,拉代码即生效:
- 进项目根目录,运行:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/(注意不加-g) - 该命令会自动向
composer.json的repositories字段追加"packagist"条目,不覆盖已有私有源 - 改完后务必运行:
composer update --lock,让composer.lock记录新源地址 - 项目级配置会被
composer install -vvv日志真实反映,是最终验证依据
最常被忽略的是项目根目录下 composer.json 里的 repositories 配置会静默屏蔽全局镜像——哪怕你全局配得再对,只要项目里写了 "repositories": [...],Composer 就优先用它。

















