直接运行 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 即可全局生效,但必须严格满足三要素:-g 参数、键名 repo.packagist(单数小写)、type 值 composer,且 url 必须为 https 并以 / 结尾,缺一即静默失效,install 仍直连 packagist.org。

直接运行 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 就能全局生效,但漏掉任意一个参数(-g、repo.packagist、composer 类型标识)或 URL 少了末尾斜杠,都会静默失败——不是慢,是根本没走镜像。
为什么 composer config -g repo.packagist 命令总不生效
这不是网络问题,而是 Composer 内部硬编码只认 repo.packagist 这个键名(单数、全小写、不能多 s),写成 repos.packagist 或 packagist.org 都会存进无效字段,查 composer config -g repo.packagist 返回空或 null,install/update 仍直连 packagist.org。
-
-g缺失 → 只改当前项目composer.json,换目录就失效 -
composer类型值被省略 → Composer 2.x 会 fallback 到默认源,等于白配 - URL 用
http://开头 → Composer 2.x 默认禁用非 HTTPS 源,直接拒绝连接 - URL 末尾没
/→ 请求路径拼成/composerpackages.json,返回 404 或Invalid repository type
切阿里云 / 腾讯云 / 华为云的正确命令格式
不同镜像 URL 结构差异大,尤其华为云路径含 /repository/php/,不能套用阿里模板。必须严格复制以下带空格和斜杠的完整命令:
- 阿里云:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 腾讯云:
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/ - 华为云:
composer config -g repo.packagist composer https://mirrors.huaweicloud.com/repository/php/composer/ - 中科大(同步略慢):
composer config -g repo.packagist composer https://packagist.mirrors.ustc.edu.cn/
清华旧镜像 https://packagist.phpcomposer.com 已下线,继续用会报 Could not resolve host。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
验证是否真在用国内镜像
别信“好像快了”,要查实际生效配置和网络请求:
- 运行
composer config -g repo.packagist,输出必须是类似{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"} - 运行
composer diagnose,看 “Repo” 行是否显示阿里云或腾讯云地址;若仍是https://packagist.org,说明被项目级repositories字段覆盖了 - 跑一次
composer update -vvv,日志里Downloading的域名必须是mirrors.aliyun.com或对应镜像域名——这才是最终确认 - 如果日志里还出现
github.com或packagist.org,大概率是composer.lock里硬编码了原始 dist 地址,得补一句composer update --lock刷新
临时换源调试,不改任何配置
CI 脚本、帮同事验证、或只跑一次 create-project 时,硬写配置反而污染环境:
- 单次命令指定源:
composer create-project laravel/laravel myapp -r https://mirrors.aliyun.com/composer/(注意参数是-r,不是--repository-url) - 仅当前项目生效(不写进
composer.json):composer config repo.packagist composer https://mirrors.ustc.edu.cn/composer/(去掉-g) - 调试真实请求地址:
composer update -vvv --repository=https://mirrors.cloud.tencent.com/composer/,日志第一行会显示实际下载 URL
配置后务必执行 composer clear-cache,否则元数据仍从旧源加载——这点最容易被跳过,导致你以为切成功了,其实还在走官方源。










