composer install卡在loading package information,根本原因是默认连接境外packagist.org超时;正确解法是用composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/覆盖默认仓库,而非新增repos.packagist。

为什么 composer install 卡在 loading package information
大概率是默认走的 packagist.org,国内直连极慢甚至超时。Composer 本身不内置镜像机制,但支持通过 repositories 配置全局或项目级镜像源。关键不是“换镜像”,而是换对位置:必须覆盖 packagist.org 这个默认仓库,而不是简单加一个新仓库。
- 错误做法:
composer config -g repos.packagist composer https://mirrors.aliyun.com/composer/—— 这只是新增了一个叫packagist的仓库,但 Composer 仍优先查官方源 - 正确做法:用
packagist作为 key,显式禁用官方源并指向镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 注意大小写:
repo.packagist(不是repos.packagist),这是覆盖默认仓库的固定键名
阿里云、腾讯云、华为云镜像哪个更稳
三者目前都可用,但稳定性差异明显。阿里云镜像(https://mirrors.aliyun.com/composer/)同步延迟最低,通常
- 验证镜像是否生效:
composer config -g repo.packagist应输出对应 URL - 临时切换测试:
composer install --repository=https://mirrors.tencentyun.com/composer/ - 镜像不解决私有包问题:若项目依赖公司内网
private-packagist或自建 Satis,需单独配置repositories,且顺序要放在packagist之后
项目级镜像配置比全局更安全吗
是,尤其当你参与多个项目,其中一些依赖特定版本约束或私有 fork 时。全局镜像会强制所有项目走同一源,而某些镜像(如清华源)曾短暂出现过元数据缓存 bug,导致 composer update 拿到错误的 dist URL。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 项目内设置:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/(去掉-g) - 该配置写入项目根目录下的
composer.json的repositories字段,可提交进 Git,团队一致 - 但要注意:如果
composer.json已存在repositories数组,别直接覆盖,应合并——手动编辑或用composer config repo.packagist ... --unset清理后再设
composer.lock 文件里还藏着镜像线索?
不藏,但会影响后续行为。一旦生成 composer.lock,所有包的 dist.url 就已固化为当时解析出的下载地址(比如阿里云 CDN 地址)。即使你后来切回官方源,composer install 仍会从 lock 文件里的 URL 下载——所以镜像切换后首次 composer update 很关键。
- 想彻底刷新源:删掉
composer.lock和vendor/,再composer install - 只更新源不改依赖:运行
composer update --lock,它会重解析所有包的 dist URL,但不升级版本 - 镜像失效时常见报错:
file could not be downloaded: php_network_getaddresses: getaddrinfo failed,说明 lock 文件里记的是旧镜像域名,已下线
repo.packagist 的拼写和大小写,输错一个字母就会静默失效——建议复制粘贴,别手敲。










