Composer安装慢主因是WSL2跨内核读/mnt/c/、未换国内镜像、xdebug启用及缓存未清;须迁项目至ext4分区、验证config -g repo.packagist输出完整JSON、禁用xdebug、加--no-dev等四参数并清缓存。

因为你的 composer install 正在跨内核读 /mnt/c/ 下的文件、连着 packagist.org 解析 DNS、开着 xdebug 做依赖求解,还一边生成 autoload 一边校验每个包的哈希——而别人早把这些全关了、换源了、挪到 ext4 分区上了。
确认当前目录是不是 WSL2 原生文件系统
WSL2 下 /mnt/c/ 是 drvfs 挂载,所有小文件操作都要跨 Windows 内核转发,composer install 这种高频写 vendor 的操作会直接卡死。不是“有点慢”,是延迟翻 5–10 倍。
- 运行
df -T .,看当前路径所在分区的Type列:显示ext4或zfs→ 安全;显示drvfs或9p→ 立刻迁移 - 项目必须放在
~/project、/home/username/project或/opt/project这类路径下,别碰/tmp(它是tmpfs,重启丢 vendor) - 迁移后删掉旧
vendor/和composer.lock,重新composer install,否则缓存仍可能回退到 drvfs 路径
验证镜像源是否真正生效
很多人执行了 composer config -g repo.packagist 就以为换源成功了,其实配置没写进去、URL 少斜杠、或者 PHP 禁用了 putenv(),结果还是在连 packagist.org。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 必须运行
composer config -g repo.packagist,输出得是完整 JSON:{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}(注意末尾斜杠 ✅) - 再跑一次
composer install -vvv,最后几行要出现类似Reading packages.json from cache at /home/xxx/.composer/cache/repo/https---mirrors-aliyun-com-composer/ - 如果输出里还有
https---packagist-org,说明镜像根本没走,清缓存:composer clear-cache,再重试
CI/CD 或生产部署必加的四个参数
--no-dev 单独加没用,--optimize-autoloader 不配它就可能爆内存;漏掉任意一个,安装时间就多出 30%–60%。
-
--no-dev:跳过require-dev包安装,但不跳过解析——所以必须和--optimize-autoloader配合,否则 autoload 阶段仍会反复扫描 PSR-4 目录 -
--prefer-dist:强制走 ZIP 包,避开 Git 克隆、SSH 认证、submodule 同步这些开销 -
--optimize-autoloader:把 PSR-4 映射转成 classmap 数组,减少运行时file_exists()调用;注意:它会让vendor/autoload.php变大,首次加载略慢,但后续快得多 -
--classmap-authoritative:只在 CI/CD 或生产环境用,告诉 autoloader “查不到就真没有”,跳过 fallback 查找;开发环境误用会导致新增类不被识别
检查 PHP 环境是否拖后腿
即使镜像、路径、参数全对,xdebug 或低内存限制也能让 composer install 慢上 5–10 倍——而且你完全看不到报错,只是卡在 Resolving dependencies。
- 运行
php -v,输出含xdebug?那就加XDEBUG_MODE=off再执行:XDEBUG_MODE=off composer install - 运行
php -i | grep memory_limit,如果memory_limit≤ 128M,加COMPOSER_MEMORY_LIMIT=-1启用无限制内存 - 别信
composer diagnose的“OK”提示——它不检测 xdebug 是否启用,也不验证缓存路径是否可写,得自己动手看
最常被忽略的是:镜像源配置写进去了,但缓存目录不可写;项目挪到 ext4 了,却忘了删旧 composer.lock 导致 Composer 回退解析;参数全加了,但 xdebug 还在后台挂着——这些点不逐个敲实,速度就不会变。

















