composer全局镜像配置失效主因是命令漏三要素:必须带-g参数、键名严格为repo.packagist(非repos)、中间composer为必填type值、url须https且以/结尾;项目级repositories字段存在时全局配置直接被跳过。

composer config -g repo.packagist 命令为什么没效果
不是镜像地址不行,是命令漏了三个硬性条件,Composer 就会静默 fallback 到 https://packagist.org,连错误都不报。
必须同时满足:
- -g 参数不能省,否则只改当前项目 composer.json
- 键名必须是 repo.packagist(不是 repos.packagist、packagist.org 或 mirror)
- 中间那个 composer 是 type 值,不是命令名,也不能省
- URL 必须是 HTTPS 且以 / 结尾,比如 https://mirrors.aliyun.com/composer/
项目里有 repositories 字段就别信全局配置
只要 composer.json 顶层存在 repositories 字段(哪怕内容是 "packagist.org": false),全局镜像就完全失效——不是优先级低,是直接跳过。
验证方式很简单:
- 进项目目录,运行 composer config repo.packagist(不加 -g)
- 如果输出为空或报错,说明项目配置已接管
临时绕过:用 composer install --repository-url=https://mirrors.aliyun.com/composer/
永久修复:
- 删除 composer.json 中整个 repositories 块(如果只是屏蔽官方源)
- 或运行 composer config repo.packagist composer https://mirrors.aliyun.com/composer/(不加 -g),它会安全写入 repositories 对象,不覆盖已有私有源
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
换源后还是 Package not found 或校验失败
大概率是缓存没清干净,或者 composer.lock 还记着旧源的 hash 和 dist URL。composer clear-cache 必须执行,否则缓存里仍是 packagist.org 的元数据快照
Linux/macOS 缓存路径:~/.composer/cache
Windows 缓存路径:%APPDATA%\Composer\Cache\
更彻底的做法:
- 删除 vendor/ 目录
- 删除 composer.lock
- 再跑 composer install
验证是否真走镜像:
- 加 -vvv 参数,看到类似 GET https://mirrors.aliyun.com/composer/p2/monolog/monolog.json 的日志才算成功
CI/CD 或宝塔里全局配置常不生效
因为 composer config -g 写的是当前用户的 ~/.composer/config.json,但 CI 脚本或宝塔后台实际以 runner、www 等用户身份运行,读的是另一个家目录下的配置。
解决方案:
- 在 CI 脚本开头加 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,确保目标用户执行
- 或统一用项目级配置:进项目目录后运行 composer config repo.packagist composer https://mirrors.aliyun.com/composer/,这样 composer.json 提交后所有人行为一致
- 别手写 "packagist.org": false,一旦镜像临时不可用,composer install 会直接失败










