应更换为国内镜像源,如运行 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 全局配置阿里云镜像,因其同步快、CDN 覆盖广,可解决 packagist.org 国内连接不稳定导致的卡顿。

为什么 composer install 卡在 Downloading...?
大概率是默认源 packagist.org 在国内直连不稳定或被限速。Composer 不会自动降级或重试,一旦 DNS 解析慢、TLS 握手超时或响应头异常,就会卡住甚至报 Connection timed out 或 file_get_contents(): SSL operation failed。这不是你网络差,而是官方源物理距离远 + 中间路由波动大。
解决思路很直接:把包下载地址从 https://packagist.org 换成国内镜像站,比如阿里云、腾讯云或华为云提供的镜像服务。它们同步频率高(通常 5–10 分钟),且 CDN 节点覆盖全国。
全局配置阿里云镜像的正确命令
运行以下命令即可将当前用户所有项目的默认仓库指向阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
注意三点:
-
-g表示全局(写入~/.composer/config.json),不加则只对当前目录生效 -
repo.packagist是 Composer 8+ 的标准写法;旧版本(repositories.packagist.org.url,但已不推荐 - 必须以
https://开头,结尾不能带/packages.json等路径 —— 镜像站会自动补全
临时切换镜像只用于单次命令
不想改全局配置?或者 CI/CD 流水线里需要干净环境?用 -d 参数临时指定配置项:
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
composer install -d '{"repositories":{"packagist.org":{"type":"composer","url":"https://mirrors.tencent.com/composer/"}}}'
更常用的是结合 COMPOSER_REPO_PACKAGIST 环境变量:
COMPOSER_REPO_PACKAGIST=https://mirrors.huaweicloud.com/composer/ composer update
这种写法不会污染本地配置,适合脚本化部署或 Docker 构建阶段。
验证镜像是否生效 & 常见失效原因
执行 composer config -g repo.packagist 应返回你设置的 URL;再跑 composer show -p | head -n 3,看首行是否出现 mirrors.aliyun.com 类字样。
如果仍走国外源,检查以下几点:
- 项目根目录下存在
composer.json并定义了repositories字段 —— 它会覆盖全局配置 - 系统中存在多个 PHP 版本,而
composer命令实际调用的是另一个版本的composer.phar,导致配置写错位置 - 镜像站临时维护(如华为云偶尔因合规要求暂停同步),可换用
https://packagist.phpcomposer.com(已停更)或直接切回官方源测试:composer config -g repo.packagist https://packagist.org
镜像不是万能加速器 —— 如果项目依赖某个私有包或 GitHub 上未打包的 dev 分支,Composer 仍会直连原地址,这部分不受镜像控制。

















