Composer install卡在packagist.org是因默认源位于欧洲,国内DNS解析慢、TLS握手不稳定、CDN缺失且受防火墙干扰;必须执行composer config -g repo.packagist composer https://mirrors.tuna.tsinghua.edu.cn/composer/并清缓存。

为什么 composer install 卡在 packagist.org?
因为默认源是国外的 packagist.org,国内直连慢、不稳定,甚至超时失败。这不是你网络差,是物理距离和路由导致的常态——直接换镜像源是最有效解法。
全局配置国内镜像源(推荐清华源)
执行一条命令即可生效,后续所有项目都会走镜像:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
注意:https://packagist.phpcomposer.com 是老牌公益镜像,但近年偶有同步延迟;更稳的选择是清华源:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
或者直接切清华(推荐):
composer config -g repo.packagist composer https://packagist.mirrors.ustc.edu.cn
-
-g表示全局,写入~/.composer/config.json,对所有项目生效 - 不要加
https://后面的斜杠,否则会报Invalid repository type - 如果提示
Could not find package,先运行composer clear-cache清缓存
临时切换源(单次命令用)
某些场景下不想改全局配置,比如 CI 环境或测试新镜像,可用 --repository 参数:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
composer update --repository=https://packagist.mirrors.ustc.edu.cn
这个参数只影响当前命令,不写入配置文件,适合调试或临时救急。
- 必须用完整 URL,且不能带 trailing slash(如
https://xxx/会失败) - 它会覆盖全局配置,但不会修改
config.json - 不支持
composer create-project直接传参,得先设环境变量:COMPOSER_REPO_PACKAGIST=https://xxx composer create-project...
验证是否生效 & 常见失效原因
运行 composer config -g repo.packagist,输出应为镜像地址,不是 packagist.org。
如果仍走原站,检查以下几点:
- 项目根目录存在
composer.json且含"repositories"字段——它会**优先于全局配置**,删掉或注释掉该字段 - 用了
composer install --no-plugins或禁用了插件,某些镜像工具(如composer-asset-plugin)可能干扰,但纯镜像配置不受影响 - 公司内网有代理或防火墙拦截了镜像域名,可手动
curl -I https://packagist.mirrors.ustc.edu.cn测试连通性
镜像不是万能加速器:有些包(尤其是私有包或未同步的新版 tag)可能还没被镜像收录,这时会自动 fallback 到官方源——这是设计行为,不是配置错误。

















