必须配置中文镜像、清缓存并调参:键名repo.packagist(单数)、type为composer、URL需HTTPS且末尾带斜杠;执行composer clear-cache,删vendor与composer.lock;初始化用--prefer-dist --no-dev -vvv。

Composer下载慢、Symfony项目创建卡在“Loading composer repositories”或“Installing dependencies”,不是网速问题,而是默认直连境外 packagist.org 导致 DNS 解析慢、TLS 握手超时、元数据拉取失败。换镜像+清缓存+调参数,三步就能明显提速。
确认并正确配置中文镜像
全局镜像必须写对三个硬条件,否则静默失效:
- 键名必须是 repo.packagist(单数,不能写成 repos 或 repositories)
- 命令中必须显式带上 composer 类型标识:例如
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - URL 必须是 HTTPS 且末尾带斜杠:https://mirrors.aliyun.com/composer/ ✅,少斜杠会拼出 404 路径 ❌
配置后执行 composer config -g repo.packagist,输出应为完整 JSON 对象,含 "url": "https://mirrors.aliyun.com/composer/" —— 空、null 或仍显示 packagist.org,说明没生效。
必须清除缓存并清理旧状态
换镜像后不清理,Composer 仍会读旧缓存里的 packages.json 和 composer.lock 中的 dist URL,实际还在连海外源:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 立即运行
composer clear-cache,清掉元数据缓存(不是临时文件) - 删除项目根目录下的
composer.lock和vendor/目录 - 若之前用过
composer global require,还需进~/.composer单独配一次镜像(不加-g)
尤其在反复失败后初始化新项目,这一步不能跳过。
初始化命令加关键参数
symfony new 或 create-project 默认行为不利于国内网络,需手动优化:
- 用
--prefer-dist强制下载 ZIP 包,避开 Git 克隆(镜像只代理 dist,不加速 source) - 加
--no-dev跳过 require-dev 依赖(如 PHPUnit、PHPStan),节省 60%+ 时间和空间 - 加
-vvv查看真实请求地址,确认日志中出现Reading packages.json from https://mirrors.aliyun.com/composer/
推荐命令示例:composer create-project symfony/skeleton my_app --prefer-dist --no-dev -vvv
排查常见干扰项
即使镜像配对了,以下情况仍会导致卡顿:
-
composer.json中存在"repositories"字段(哪怕为空数组),会直接覆盖全局镜像,需删掉或重写为合法镜像配置 - 启用了
"prefer-source": true,强制走 Git,与镜像无关,务必检查并移除 - Xdebug 开启状态下,依赖解析速度下降 5–10 倍,临时禁用:
php -d xdebug.mode=off $(which composer) install - CI/CD 或宝塔环境以 www 用户运行,但镜像配置在 root 下,需切用户执行:
sudo -u www composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

















