正确命令是 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,缺 -g、键名写成 repos.packagist 或漏掉 type “composer”均导致静默失败,install 仍走官方源。

composer config -g repo.packagist 命令必须带这三样
不写 -g、键名写成 repos.packagist(多一个 s)、漏掉 composer 这个 type 值——任意一项出错,命令都静默失败,composer install 仍走 https://packagist.org,卡在 Loading composer repositories 是必然结果。
正确写法只有一条:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
-
-g表示全局配置,写入~/.composer/config.json,影响所有项目 -
repo.packagist是唯一合法键名(注意是单数repo,不是复数repos) -
composer是 type 值,不是可选参数,也不是注释——缺了它,Composer 2.2+ 直接 fallback 到官方源 - URL 必须以
https://开头,且末尾带斜杠:https://mirrors.aliyun.com/composer/✅;少斜杠会拼成/composerpackages.json导致 404
换源后 still downloading?删 lock 文件再 update --lock
换了镜像却卡在 installing hyperf/cache v3.1.0 或类似包的 downloading 阶段,不是镜像没生效,而是 composer.lock 里还存着旧的 dist.url,指向境外地址。Composer 会先尝试这个链接,失败才 fallback,且 fallback 不保证成功。
必须执行:composer update --lock
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 该命令强制重写
composer.lock中所有包的dist.url,替换成镜像源路径 - 新项目用
composer create-project时,建议直接加--repository=https://mirrors.aliyun.com/composer/避免后续麻烦 - 验证是否生效:打开
composer.lock,搜索任意hyperf/包,看其dist.url字段是否为https://mirrors.aliyun.com/composer/dists/...
CI/宝塔/Docker 环境下别信全局配置
在宝塔面板、GitHub Actions 或 Docker 构建中,composer config -g 很可能白配——因为这些环境默认以 www、runner 或容器内非登录用户身份运行,读不到你个人用户的 ~/.composer/config.json。
更可靠的做法是项目级配置:composer config repo.packagist composer https://mirrors.aliyun.com/composer/
- 不加
-g,命令会修改当前目录下的composer.json,向repositories字段追加 packagist 条目 - 该配置随代码提交,团队成员拉取即生效,无需各自操作
- 如果
composer.json原本是"repositories": {},命令自动 merge;如果是"repositories": [],需先手动改为对象格式再执行 - CI 脚本开头可加健康检查:
curl -I -s https://mirrors.aliyun.com/composer/packages.json | grep "200 OK"
装 Hyperf 时漏掉这几个参数,速度照样慢
光换镜像不够。Hyperf 依赖多、包体积大,composer install 卡在 autoloader 生成或 dev 包下载上,常因参数缺失。
生产环境务必加:composer install --no-dev --prefer-dist --optimize-autoloader
-
--no-dev:跳过phpunit、mockery等开发依赖,减少 30%+ 下载量 -
--prefer-dist:优先下载 ZIP 归档而非 Git 克隆,节省大量网络和解压时间 -
--optimize-autoloader:生成优化后的autoload_classmap.php,避免运行时遍历查找 - 若 CI 中遇到 SSL 证书问题(如
unable to get local issuer certificate),临时加-n跳过验证,但不应长期开启
composer.lock 里记录的哈希值若与镜像元数据不匹配,也会触发校验失败——这些细节容易被忽略,但恰恰是“明明换了源还是慢”的真正原因。










