换镜像源比调timeout更有效,90%的慢和超时源于网络连接层问题;应优先使用阿里云或腾讯云镜像,验证配置生效后立即清缓存,而非盲目增加timeout。

换镜像源比调 timeout 更管用
看到 cURL error 28 或卡在 Downloading,90% 不是 Composer 本身慢,而是连不上 packagist.org。加 --timeout=3600 只会让命令 hang 得更久,不解决根本问题。
- 优先用阿里云镜像:
composer config -g repos.packagist composer https://mirrors.aliyun.com/composer/ - 腾讯云也稳定:
composer config -g repos.packagist composer https://mirrors.cloud.tencent.com/composer/ - 别碰 Laravel China 镜像(
https://packagist.laravel-china.org),2025 年底起已频繁 502/503 - 设完立刻执行
composer clear-cache,否则旧缓存仍走海外源 - 验证是否生效:
composer config -g repos.packagist,输出里必须含"url": "https://mirrors.aliyun.com/composer/"
clear-cache 不是万能加速键
composer clear-cache 只清本地 ~/.composer/cache/ 里的 zip 和元数据,对网络、镜像未配、PHP 扩展异常完全无效。它只在缓存损坏时才真有用。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 真正需要清缓存的场景:
Invalid signature报错、中断后残留不完整 .zip、切换镜像后元数据冲突 - 如果
composer clear-cache后依然卡在同一个包,说明瓶颈不在缓存 - 加
-v看实际删了什么:composer clear-cache -v - 顺手清配置缓存:
composer clear-config-cache(尤其改过全局 config 后)
并行下载只对 install 有效,update 别指望
parallel-downloads 是 Composer 2.2+ 原生支持的并发机制,靠 cURL multi 实现,但它对 composer update 几乎没用——依赖图计算本身是串行的。
- 全局启用(推荐值 10):
composer config -g parallel-downloads 10 - 值不是越高越好:设成 20 容易触发
file_put_contents(/tmp/): failed to open stream,降到 6–8 更稳 - 确认版本:
composer --version,若显示 1.x,先composer self-update - 卸载已失效插件:
composer global remove hirak/prestissimo(Composer 2.x 中它会静默降级为单线程)
install 和 update 的提速组合拳
composer install 和 composer update 慢的原因完全不同,不能混用同一套参数。
- 部署/CI 用
install:加--no-dev --prefer-dist --optimize-autoloader --classmap-authoritative - 开发中少用
update:它会重算整个依赖图;想更新单个包就写composer update monolog/monolog - 禁用 Xdebug:
php -d zend_extension= -d xdebug.mode=off /usr/bin/composer install,解析快 5–10 倍 - 缓存目录挪 SSD:
composer config -g cache-dir /mnt/ssd/composer-cache,解压 zip 时不卡 I/O
composer.json 里宽泛的版本约束、被忽略的 composer.lock、或误配的 platform 字段——这些不会报错,但会让求解器默默跑几分钟。










