新服务器上composer install卡住主因是镜像未正确配置,必须执行composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(三要素缺一不可),立即clear-cache,并验证-vvv日志是否出现mirrors.aliyun.com,否则仍直连packagist.org。

新服务器上 composer install 卡住,大概率镜像根本没配
不是网络差,是新服务器默认没走国内镜像——composer install 仍在直连 packagist.org,DNS 解析慢、TLS 握手卡、首字节延迟高,甚至直接超时。必须手动导入镜像配置,且要一次写对。
-
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/是唯一推荐的全局命令,repo.packagist(不是repos.packagist)、composer类型、URL 末尾/三者缺一不可 - 执行后立刻验证:
composer config -g repo.packagist输出必须是{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}或纯 URL 字符串,空、null、或仍显示packagist.org都说明失败 - Linux/macOS 下若权限不足,可能写入失败;可临时用
sudo composer config -g ...,但更稳妥的是先chown -R $USER:$USER ~/.composer
只配镜像还不够,缓存不清理等于白配
旧缓存里全是 packagist.org 的元数据,Composer 会优先读它,根本不发请求到镜像站——你看到的“正在下载”,其实是卡在本地缓存校验环节。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 必须立即执行:
composer clear-cache,清掉~/.composer/cache/下所有内容 - 验证是否真走镜像:进项目目录,跑
composer install -vvv --no-install 2>&1 | grep "Downloading",日志里必须出现mirrors.aliyun.com或mirrors.cloud.tencent.com - 如果日志里还夹着
packagist.org/packages.json,说明缓存没清干净,或配置被项目级repositories覆盖了
项目级配置被忽略?检查 repositories 是否覆盖全局
项目根目录下的 composer.json 里若已有 "repositories" 字段,它会完全屏蔽全局镜像——哪怕你配得再对,也无效。
- 运行
composer config --list和composer config --list --global对比,看实际生效的是哪个repositories.packagist - 如果项目级有
"repositories": {...},且里面没包含"packagist"条目,就手动加进去:composer config repo.packagist composer https://mirrors.aliyun.com/composer/(不加-g) - 切忌直接编辑
composer.json手动拼 JSON——格式错一个逗号就会让 Composer 拒绝加载整个repositories,建议一律用命令追加
为什么 composer create-project 还是慢?dist 包没走镜像
阿里云等镜像只缓存 dist(ZIP)包,不缓存 source(Git);但 create-project 默认走 source,除非明确告诉它用 dist。
- 必须加
--prefer-dist参数:composer create-project --prefer-dist laravel/laravel myapp - 同时确认项目
composer.json里没有"prefer-source": true,否则会强制覆盖--prefer-dist - 某些包硬编码 GitHub ZIP 地址(如
"dist": {"url": "https://github.com/xxx/yyy/archive/..."}),这类请求不走镜像,会撞GithubRateLimit;遇到时先composer show vendor/package -vvv看真实请求地址
clear-cache、拼错 repo.packagist、或被项目级 repositories 静默覆盖,这三件事任意一个发生,都会让你以为“换源没用”。










