换国内镜像源、清缓存、调并发三步到位:执行composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,验证输出为完整JSON;必须composer clear-cache;再设composer config -g http-max-concurrent-downloads 10。

云服务器上 Composer 下载慢,基本不是带宽问题,而是默认连 packagist.org 导致 DNS 解析卡、TLS 握手失败、元数据拉取超时——换国内镜像源 + 清缓存 + 调并发,三步到位,否则装个 Laravel 都可能卡半小时。
确认当前镜像源是否真生效
很多人执行了 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 就以为完事了,其实常静默失败。必须验证输出:
- 运行
composer config -g repo.packagist,输出必须是完整 URL 字符串(如"https://mirrors.aliyun.com/composer/")或 JSON 对象,不能为空、不能是https://packagist.org - 若输出异常,常见原因:漏写
composer类型参数、URL 少末尾/、误写成repos.packagist(多一个 s)、没加-g只改了当前目录 - 临时验证是否走镜像:运行
composer show laravel/framework -vvv 2>&1 | grep "Downloading",日志里必须出现mirrors.aliyun.com或对应镜像域名
必须清缓存,否则镜像等于白配
Composer 会优先读本地缓存里的旧元数据,哪怕镜像已切对,它仍尝试连 packagist.org 校验,结果卡在 TLS 握手或 DNS 超时——这不是网络差,是缓存残留。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 立刻执行
composer clear-cache,强制丢弃所有本地索引和包缓存 - 如果项目已有
vendor/和composer.lock,建议一并删掉再跑composer install --no-cache,避免 lock 文件引用已下线的包触发回退查找 - CI 环境中,每次构建前都应加
composer clear-cache,尤其用 Docker 多阶段构建时,缓存污染很常见
调高并发下载但别瞎设
Composer 2.2+ 默认只开 3 个并发,根本吃不满云服务器带宽;但设太高又会触发 I/O 竞争,典型报错是 file_put_contents(/tmp/): failed to open stream。
- 正确配置命令是:
composer config -g http-max-concurrent-downloads 10(注意不是已弃用的parallel-downloads) - 10 是多数云服务器(4核以上)的临界值;若报临时文件错误,降到 6 或 8 再试
- 该配置仅对
composer install生效,composer update因要算依赖图,仍部分串行,别指望它也提速
CI/CD 构建阶段必须加这三项参数
云服务器部署时,composer install 默认会生成自动加载器、执行脚本、加载插件——这些在构建镜像时全是冗余,纯属拖慢速度。
- 务必使用:
composer install --no-autoloader --no-scripts --no-plugins -
--no-autoloader跳过生成vendor/autoload.php,后续用composer dump-autoload --optimize单独补 -
--no-scripts阻止执行post-install-cmd,避免意外触发前端构建、缓存清理等重型操作 - 注意:这样装出来的
vendor不能直接跑 PHP,必须补一次composer dump-autoload --optimize
最易被忽略的是:镜像 URL 必须带结尾斜杠、http-max-concurrent-downloads 不是 parallel-downloads、CI 构建后不补 dump-autoload 就上线会导致 Class not found 错误。

















