执行 composer config repo.packagist composer https://mirrors.aliyun.com/composer 可配置阿里云镜像,需确保 repositories 为对象{}、url末尾无/、删除 vendor 和 composer.lock 后重装。

项目根目录执行 composer config 命令即可
直接进项目根目录(含 composer.json),运行:composer config repo.packagist composer https://mirrors.aliyun.com/composer/
这条命令会自动在 composer.json 顶层添加或更新 "repositories" 字段,key 固定为 "packagist",值是合法的镜像对象。
常见错误现象:命令执行后 composer install 仍从 packagist.org 下载 —— 很可能是因为项目里已有 "repositories": [](数组形式),此时命令会报错,不写入任何内容。
- 如果
composer.json中"repositories"是空数组[],需先手动改成空对象{}再重试 - 如果已是对象
{}或已含其他私有源,该命令会安全合并,不会覆盖原有配置 - URL 末尾不能带
/(注意:和全局配置相反),https://mirrors.aliyun.com/composer✅,https://mirrors.aliyun.com/composer/❌(会导致 404) - 别漏掉中间的
composer—— 它是type值,不是可选参数,少了就写入无效结构
改完必须删 vendor/ 和 composer.lock
镜像切换后,旧 composer.lock 文件里的包哈希、下载路径仍指向原源,强行 composer update 可能拉不到包或校验失败。最稳妥做法是彻底清空重装。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 执行
rm -rf vendor/ composer.lock(Windows 用rmdir /s vendor && del composer.lock) - 再运行
composer install(不是update),确保所有依赖从新镜像源完整拉取 - 如果项目用了
require-dev工具链(如phpunit),此时也会一并从镜像安装,速度明显提升
验证是否真走镜像,别信“跑完就生效”
执行完命令不代表立刻生效,尤其当 composer.json 里已有 "repositories" 字段时,Composer 会优先读它,但结构不对照样失效。
- 运行
composer config repo.packagist(不加-g),输出应为:{"type":"composer","url":"https://mirrors.aliyun.com/composer"}(注意末尾无斜杠) - 若返回
Key "repo.packagist" does not exist,说明没写进去,检查composer.json是否被 Git 忽略、权限是否可写 - 更可靠方式:加
-vvv跑一次composer install -vvv 2>&1 | grep "Downloading",日志里出现的域名必须是mirrors.aliyun.com
已有私有源时,镜像必须显式禁用 packagist.org
如果你的 composer.json 里已经定义了私有仓库(比如企业 Nexus 或 GitHub Packages),Composer 默认仍会把 packagist.org 当作兜底源,导致部分包绕过镜像直连国外。
- 必须在
composer.json根节点加一行:"packagist.org": false - 位置不限,但不能塞进
"repositories"里;正确写法是和"name"、"require"同级 - 否则即使
"repositories"里写了镜像,Composer 在元数据合并阶段仍会请求packagist.org,拖慢解析速度甚至触发限流










