必须换国内镜像源,否则composer install卡在downloading或loading repositories是常态;主因是直连packagist.org导致dns慢、tls握手卡、首字节延迟高甚至503,非网络或机器性能问题。

必须换国内镜像源,否则 composer install 卡在 Downloading... 或 Loading composer repositories 是常态,不是网络问题,是默认连 https://packagist.org 导致 DNS 解析慢、TLS 握手卡、首字节延迟高甚至 503 —— 换源不是“试试看”,而是第一步且必须做对。
执行 composer config -g repo.packagist 配全局镜像(最常用)
这条命令改的是用户级配置(~/.composer/config.json),所有项目默认生效,无需重启终端:
- 阿里云(推荐):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/—— 稳定性高,同步及时,URL 必须以/结尾,少斜杠会拼接出错 - 腾讯云:
composer config -g repo.packagist composer https://mirrors.cloud.tencent.com/composer/—— 华南地区响应更快,CDN 覆盖广 - 清华源:
composer config -g repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/—— 高校背景,学术项目常用,同步延迟通常 ≤5 分钟 - 华为云:
composer config -g repo.packagist composer https://mirrors.huaweicloud.com/repository/php/—— 企业级服务,适合 CI/CD 流水线中要求 SLA 的场景
验证是否生效:composer config -g repo.packagist 输出应为完整 URL 字符串或 JSON 对象;若为空、null 或仍显示 https://packagist.org,说明没写入成功,常见原因是权限不足或 Composer 版本过低(1.x 需用 repos.packagist)。
为什么 composer install 还是慢?重点排查这几个点
镜像只加速元数据拉取和 ZIP 包下载,不解决依赖解析阶段的卡顿。以下才是真实瓶颈:
-
Resolving dependencies卡住:大概率是 PHP 内存不足(默认128M不够),临时加COMPOSER_MEMORY_LIMIT=-1再试 - 启用了
xdebug:运行php -v看是否含xdebug,它会让解析慢 5–10 倍;临时禁用:php -d xdebug.mode=off $(which composer) install -
platform配置与实际 PHP 版本不匹配:比如"php": "7.4"却在 PHP 8.5.5 上运行,触发降级查找逻辑 -
composer.lock残留已下线包:删掉vendor/和composer.lock,再跑composer install --no-cache - 忘了清缓存:
composer clear-cache必须跟换源一起做,否则旧缓存里的packages.json还指向官方源,Composer 会先尝试从那里解析
项目级配置和临时切换怎么用才不踩坑
项目级配置写入 composer.json 的 repositories 字段,优先级高于全局设置,适合团队协作或 CI 场景:
- 进项目根目录后执行:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/—— 会自动追加到repositories中,不覆盖已有私有源 - 若项目已有
repositories且含自定义源,手动编辑时务必确保"packagist.org": false显式声明,否则 Composer 可能 fallback 到官方源 - 临时测试某镜像:加
--repository参数,如composer update -vvv --repository=https://mirrors.tuna.tsinghua.edu.cn/composer/—— 仅当次命令生效,且-vvv日志里能看到请求域名才确认走对了 - 注意:旧版插件如
fxp/composer-asset-plugin已废弃,它不走 Composer 镜像配置,还会干扰并发下载,建议升级到yiisoft/yii22.0.14+ 或迁移到 npm/yarn
哪些参数组合真正影响下载速度
composer install 快不快,取决于三件事:能不能连上、要不要解压、要不要生成 autoload。生产或 CI 中最有效的组合是:
-
--prefer-dist:强制下 ZIP 包,跳过 Git clone,尤其对只有dev-main分支的包效果明显 -
--no-dev:跳过require-dev,减少包数量 -
--no-autoloader+--no-scripts:跳过 autoload 生成和脚本执行,CI 构建时常用 -
http-max-concurrent-downloads 10:新版 Composer(2.2+)唯一认的并发下载配置,parallel-downloads已弃用且无效
最后提醒一句:镜像同步有延迟(通常 5–30 分钟),新发布的包可能还没同步到镜像站;另外,如果项目 composer.json 里显式写了私有 repositories 或用了 path 类型仓库,那些包依然会绕过镜像直连——这不是配置失败,是设计如此。











