必须换镜像源,正确命令为composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/;需清缓存、删vendor和composer.lock、用--no-cache重装,并验证请求是否打到镜像域名。

composer install 卡在 Downloading... 不是你网络差,是默认直连 https://packagist.org——DNS 解析慢、TLS 握手卡、首字节延迟高,甚至直接超时。换镜像不是“试试看”,而是必须做的第一步。
composer config -g repo.packagist 命令为什么总不生效?
它静默失败,不报错也不提示,但根本没走镜像。常见写法错误有三个:
-
repo.packagist写成repos.packagist(多一个s) - 漏掉中间的
composer类型参数,命令变成composer config -g repo.packagist https://mirrors.aliyun.com/composer/ - URL 少了末尾斜杠:
https://mirrors.aliyun.com/composer❌,必须是https://mirrors.aliyun.com/composer/✅
正确命令只有一条:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。验证是否写入成功,运行:composer config -g repo.packagist,输出应为完整 URL 或 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。
项目级配置比全局更可靠,尤其在 CI/CD 中
全局配置写在 ~/.composer/config.json,但宝塔用 www 用户执行、Docker 容器里没配、CI 环境每次重装,都可能导致它读不到。项目级配置直接改 composer.json,拉代码即生效。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(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字段追加packagist条目,不覆盖已有私有源 - 如果
composer.json已有"repositories": {},别手动编辑 JSON——逗号少一个就导致composer install报错
换源后仍卡在 Downloading?清缓存 + 删 lock 才真有效
镜像只加速下载,但旧缓存里存着 packagist.org 的元数据,Composer 会优先读缓存并尝试从旧地址校验——结果就是卡在 DNS 或 TLS 握手,根本没发请求到镜像站。
- 必须执行:
composer clear-cache(注意不是cache-clear,后者已废弃) - 删掉
vendor/和composer.lock - 再跑:
composer install --no-cache(禁用缓存强制走新源) - 别保留旧
composer.lock——它记录的是旧源的包哈希,和镜像返回的元数据不兼容,必然报hash does not match
怎么确认真的走镜像了?别信命令输出,要看网络请求
composer config -g repo.packagist 显示 URL 没用,得看到实际请求打到镜像域名才算数。
- 实测命令:
composer show monolog/monolog -vvv 2>&1 | grep "Downloading" - 日志里必须出现
mirrors.aliyun.com或mirrors.tuna.tsinghua.edu.cn等镜像域名 - 如果看到
https://packagist.org或repo.packagi,说明镜像根本没生效
最常被忽略的点:缓存未清、composer.lock 残留、repositories 字段覆盖全局配置——这三件事不做,换源等于白换。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










