Composer加速需同时满足三条件:镜像URL末尾带/、键名严格为repo.packagist、类型必须写composer;需清缓存、删vendor和composer.lock后重装,否则仍从GitHub下载;项目级配置比全局更可靠。

composer install 卡在 Downloading https://codeload.github.com/ 或 Resolving dependencies,不是网络差,而是镜像没导出、缓存没清、锁文件没更新——三者缺一,加速就白配。
为什么 composer config -g repo.packagist 总是不生效
这条命令静默失败率极高,且不报错。真正起作用的只有三个硬条件同时满足:
-
repo.packagist是唯一合法键名,写成repos.packagist或packagist.org会被完全忽略 - 第二个参数必须显式写
composer(这是仓库类型,不是注释或可选值) - URL 必须是 HTTPS + 末尾带
/:例如https://mirrors.aliyun.com/composer/✅,而https://mirrors.aliyun.com/composer❌(少斜杠会拼出/composerpackages.json导致 404)
验证是否写入成功,只看这一行:composer config -g repo.packagist。输出必须是完整 JSON 对象,如 {"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}。空、null、或仍是 https://packagist.org,说明根本没生效。
composer install 还是从 github.com 下 zip?
镜像只代理元数据(packages.json),不托管 ZIP 包。一旦 composer.lock 里存的是原始 GitHub 的 dist.url,Composer 就照单下载,无视所有镜像配置。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 必须删掉
vendor/和composer.lock - 再执行
composer install,让 Composer 重新拉取镜像元数据并生成带镜像域名的新dist.url -
--repository参数对已存在的composer.lock完全无效,它只影响元数据拉取环节 - 执行
composer clear-cache很关键——旧缓存里可能还存着官方源的packages.json
项目级配置比全局更可靠吗
是的,尤其在 CI/CD、宝塔、Docker 等多用户环境中。全局配置写在 ~/.composer/config.json,但实际运行命令的可能是 www、runner 或容器内非 root 用户,根本读不到你的配置。
- 进项目根目录,运行:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/(注意:不加-g) - 它会自动往
composer.json的repositories字段安全追加,不覆盖已有私有源 - 如果
composer.json原本是"repositories": [](数组格式),命令会报错;需先手动改成"repositories": {}(对象格式) - 改完后务必删
composer.lock,再跑composer install,否则新配置不会落地
并发下载和 prefer-dist 不设等于白配
Composer 2.2+ 默认只并发 3 个连接,国内带宽严重浪费。不调这个,换再快的镜像也卡在 Downloading。
- 启用高并发:
composer config -g parallel-downloads 10 - 强制走 dist 包(ZIP)而非 source(git clone):
composer config -g prefer-dist true - 执行完立刻
composer clear-cache,否则仍从旧缓存读元数据 - 验证三项都生效:
composer config -g parallel-downloads、composer config -g prefer-dist、composer config -g repo.packagist都应返回对应值
最易被忽略的是:镜像 URL 和实际请求路径必须严格匹配,少一个斜杠、错一个字母、混用 HTTP/HTTPS,都会导致静默回退——而日志里只显示 “Loading composer repositories”,看不出哪一步断了。

















