必须先设镜像源,否则 composer install 卡在 downloading 是常态;推荐全局配置阿里云镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,验证输出应为该 url 或对应 json。

必须先设镜像源,否则 composer install 卡在 Downloading 是常态,不是网络问题,是默认还在直连 packagist.org。
全局配置镜像源(最常用、最稳)
一条命令永久生效,所有项目默认走国内镜像,不用改文件、不用重启终端。
- 执行:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 验证是否成功:
composer config -g repo.packagist,输出应为该 URL 字符串(新版 Composer)或类似{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}(旧版) - 若提示
Could not open input file: composer,说明composer没进系统PATH,查安装路径(如/usr/local/bin/composer),补环境变量 - 若报
Warning: putenv() has been disabled,去php.ini检查disable_functions,删掉putenv和proc_open,再重启 PHP-FPM 或 Apache - 别用已下线的
https://packagist.phpcomposer.com(2022 年停更),现在访问会 404 或跳转失败
临时指定镜像源(单次命令、CI 脚本适用)
适合只想试一个包、不想污染全局配置、或 CI 环境需隔离时。优先级最高,但只对当次命令有效。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 加
--repository参数即可,例如:composer update -vvv --repository=https://mirrors.aliyun.com/composer/ - 务必加
-vvv:它会打印出实际请求的 URL,一眼确认是否真走镜像——这是排查“为什么还是慢”的第一手证据 - 别写成
--repository-url或--mirror,这两个参数不存在,会静默忽略 - 注意:如果项目
composer.json已有repositories字段,--repository会覆盖整个列表,可能导致私有包找不到;这种场景建议改项目级配置
项目级配置镜像源(团队协作推荐)
只影响当前项目,不干扰其他项目,适合多人协作或需要明确约束源的场景。
- 进项目根目录,运行(去掉
-g):composer config repo.packagist composer https://mirrors.aliyun.com/composer/ - 该命令会往
composer.json的repositories字段写入配置;如果已有该字段,别手动覆盖,用命令追加,否则可能误删私有包源 - 手动写法示例(仅当命令不可用时):
{ "repositories": { "packagist": { "type": "composer", "url": "https://mirrors.aliyun.com/composer/" } } } - 验证方式:删掉
vendor和composer.lock,再跑composer install,看日志里下载域名是不是mirrors.aliyun.com
多源 fallback 配置(防镜像同步延迟)
阿里云/腾讯云镜像虽快,但新包可能有几分钟延迟;官方源永远最新但慢。两者协同才是生产级做法。
- 关键点:
"packagist.org": false必须显式写在composer.json根节点,否则你配的镜像只是“额外源”,Composer 仍会优先直连官方源 - 正确写法(把镜像放前,官方源兜底):
{ "repositories": [ { "type": "composer", "url": "https://mirrors.aliyun.com/composer/" }, { "type": "composer", "url": "https://packagist.org/" } ], "packagist.org": false } - 别在
repositories数组里写"packagist.org": false,它必须是顶层字段 -
composer config命令无法直接设置多源,只能用于单镜像;多源必须手动编辑composer.json或用脚本注入 - 镜像不同步时,Composer 默认等满 30 秒才切下一个源;所以顺序很重要——快的放前面,慢的放后面兜底
镜像只是加速下载,不解决依赖解析慢的问题。如果 composer update 卡在 Resolving dependencies,和镜像无关,得看 composer.lock 是否老旧、PHP 版本是否匹配、config.platform.php 是否合理。另外,某些包硬编码 GitHub URL,绕不开镜像,这类情况得配 GitHub Token 来突破限速。










