应配置项目级镜像源:执行composer config repo.packagist composer https://mirrors.aliyun.com/composer/,确保键名为repo.packagist、type为composer、URL末尾带/,并验证-vvv输出中请求地址是否命中镜像域名。

不配中文镜像,composer install 卡在 Loading composer repositories 是常态,不是网络问题,是 packagist.org 在国内根本连不上——DNS 解析慢、TLS 握手失败、无 CDN 节点,等 5 分钟不报错只停住,是默认行为。
composer config -g repo.packagist 命令为什么总“看起来成功实则无效”
它写进 ~/.composer/config.json,但失效原因很具体:
-
repo.packagist键名写成repos.packagist(多一个 s)或packagist.org:不报错,但 Composer 完全忽略 - 漏掉
composer这个 type 参数:命令执行成功,配置存进去了,但 Composer 当作无效仓库 fallback 到官方源 - URL 少了末尾
/:比如写成https://mirrors.aliyun.com/composer,某些 Composer 版本会拼出https://mirrors.aliyun.com/composer/packages.json导致 404 - 用 root 执行了
composer config -g,但 CI 或宝塔后台以www用户运行:读的是/home/www/.composer/config.json,根本看不到 root 的配置
验证镜像是否真在生效,别信 composer config -g 的输出
这个命令只显示“有没有设”,不显示“有没有被用”。真实依据是 HTTP 请求地址:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 运行
composer clear-cache && composer require monolog/monolog -vvv 2>&1 | grep "GET\|Downloading" - 看输出里 URL 是不是含
mirrors.aliyun.com、mirrors.tuna.tsinghua.edu.cn等,而不是packagist.org或repo.packagist.org - 如果
composer diagnose输出还有Repo packagist.org is default,说明镜像没接管,99% 是键名或 type 写错了 - PHPStorm 等 IDE 会缓存 Composer 配置,改完全局设置后必须重启 IDE 才能识别
项目级配置比全局更可靠,尤其在 CI 和团队协作中
全局配置容易被覆盖或权限绕过,项目级写进 composer.json 才真正可控:
- 进项目根目录,运行
composer config repo.packagist composer https://mirrors.aliyun.com/composer/ - 它会自动往
repositories字段里安全追加,不覆盖已有私有源;但如果composer.json里"repositories": []是数组格式,会报错,得先手动改成对象{} - 千万别手写
"packagist.org": false—— 这会彻底关掉官方源,一旦镜像临时挂掉,composer install直接失败 - 改完记得删掉
vendor和composer.lock,否则旧 lock 文件里的 hash 可能和镜像元数据不一致,引发校验失败
最常被忽略的一点:镜像地址必须匹配元数据接口和 ZIP 包分发节点。用阿里云镜像,就不能混着清华源的 URL;composer show -v 输出里出现两个不同域名,说明配置冲突或部分请求被 fallback,这时安装可能成功但后续更新出错。

















