composer安装慢主因是直连境外packagist.org,必须配置国内镜像源并严格校验:全局配repo.packagist为https://mirrors.aliyun.com/composer/,清缓存后用-vvv确认请求命中镜像域名。

Composer 安装慢,90% 是因为还在直连 packagist.org——这不是你家宽带问题,而是 DNS 解析、TLS 握手、首字节延迟三重卡在境外链路上。换镜像不是“试试看”,而是必须做的第一步,且必须配对、配全、配准。
确认当前源是否真在用国内镜像
别跳过这步,很多人配了但没生效,还误以为镜像不给力。
- 运行
composer config -g repo.packagist,输出必须是完整 JSON,比如{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"};空、null、或仍是https://packagist.org,说明没写进去 - 执行
composer diagnose,重点看Checking https connectivity to packagist行:显示OK但安装仍慢,大概率是包下载阶段被限速,不是连通性问题 - 临时验证:运行
composer create-project laravel/laravel test --repository=https://mirrors.aliyun.com/composer/,看是否能快速拉取基础依赖
全局配置阿里云镜像(最稳、推荐)
这条命令写入 ~/.composer/config.json,所有项目默认走这个源,CI/CD 也受惠。但要注意几个硬性条件:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 键名必须是
repo.packagist,写成repos.packagist或repositories.packagist都会静默失效 - 中间必须显式指定
composer类型,漏掉会被识别为无效配置 - URL 必须以
https://开头,且末尾带斜杠:https://mirrors.aliyun.com/composer/✅,https://mirrors.aliyun.com/composer❌(拼接后变成/composerpackages.json导致 404) - 设完立刻清缓存:
composer clear-cache,否则旧的元数据还在缓存里,Composer 仍会尝试从旧地址拉取
项目级配置(团队协作首选)
只要项目根目录的 composer.json 中存在 "repositories" 字段,无论内容是 {}、[] 还是含私有源,全局配置都会被跳过。这是 Composer 的明确优先级规则:项目级 > 全局级。
- 进项目根目录后执行:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/ - 它会自动向
repositories对象中插入"packagist"子项(前提是原repositories是对象,不是数组) - 常见陷阱:
"repositories": {}—— 空对象也触发屏蔽;"repositories": [{"type": "vcs", "url": "git@xxx"}]—— 即使没提packagist,也会绕过镜像 - 手动编辑时误删逗号或缩进,导致 JSON 解析失败,Composer 自动 fallback 到默认源
验证是否真走镜像域名
光看 config 输出不够,要亲眼看到请求发到了镜像域名。
- 加
-vvv运行:composer install -vvv 2>&1 | grep "Downloading" - 日志里必须出现类似
mirrors.aliyun.com或mirrors.tuna.tsinghua.edu.cn的路径才算真正生效 - 如果还看到
packagist.org,说明 fallback 了,配置被覆盖或未生效 - 可用
composer config --list和composer config --list --global对比确认实际生效的是哪个
最常被忽略的一点:有些框架 starter 模板自带 Git 克隆步骤,镜像只加速包下载,Git 部分仍需另配代理或使用国内 fork;composer create-project 默认不读全局镜像配置,必须显式加 --repository-url 参数。










