根本原因是 composer 默认连接国外 packagist.org,导致 dns、tcp、tls 等多阶段延迟高;必须更换国内镜像源,如阿里云 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。

为什么 Composer install 总卡在 Downloading...
根本原因不是网络差,而是默认走的 packagist.org(国外源),所有包元数据和 ZIP 文件都从欧洲服务器拉。国内用户直连时,DNS 解析、TCP 握手、TLS 握手、首字节延迟全高,composer install 会反复卡在 Downloading https://api.packagist.org/... 或某个 .zip 下载上。
实操建议:
- 立刻换国内镜像源,这是最直接有效的解法,不是“试试看”,是必须做
- 不要只改
composer.json里的repositories—— 那只影响当前项目,全局命令(如create-project)仍走默认源 - 优先用
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,阿里云源稳定、同步快、支持 HTTPS - 如果公司内网有私有镜像,用
https://your-internal-mirror.com替代阿里云地址,但要确认它已开启allow-plugins兼容模式(Composer 2.2+ 默认禁用未声明插件)
执行 composer install 还是慢?检查这三件事
换了源还慢,大概率是本地环境或依赖结构的问题,不是源本身。
常见错误现象:Resolving dependencies 耗时超 2 分钟、Installing xyz/abc (v1.2.3) 卡住不动、反复重试同一包。
实操建议:
- 运行
composer diagnose,重点看PHP version和memory_limit—— 如果是128M或更低,加COMPOSER_MEMORY_LIMIT=-1再试 - 删掉
vendor/和composer.lock,用composer install --no-cache重装 —— 旧 lock 文件可能含已下线的包引用,触发回退查找 - 检查是否启用了
xdebug:运行php -v,若输出含xdebug,临时禁用(php -d xdebug.mode=off -d extension=xdebug.so $(which composer) install),Xdebug 会让依赖解析慢 5–10 倍
composer create-project 卡在 Installing dependencies 怎么办
这个命令本质是先 git clone 或下载 ZIP,再自动跑一次 composer install。卡住位置不同,对策也不同。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
使用场景:拉 Laravel、Symfony 等脚手架项目时,常卡在第二阶段。
实操建议:
- 加
--no-install参数跳过自动 install:composer create-project laravel/laravel myapp --no-install,进目录后再手动composer install(可控、可调试) - 如果卡在第一阶段(下载 ZIP),说明模板仓库本身托管在 GitHub,受 GitHub 下载限速影响 —— 改用
--repository-url指向 Gitee 镜像(如https://gitee.com/laravel-china/laravel),但注意分支名和 tag 是否对齐 - 避免用
-s dev拉开发分支:dev 分支依赖约束宽泛,Resolving dependencies时间指数增长,生产环境一律用稳定 tag(如v10.48.12)
换源后 composer update 报 Package xyz has a PHP requirement incompatible with your PHP version
这不是镜像问题,是源同步策略导致的「元数据滞后」:阿里云/腾讯云等镜像通常每 5–10 分钟同步一次 packagist.org 的 JSON 元数据,但不会实时更新每个包的 require.php 字段校验逻辑。
性能 / 兼容性影响:报错本身不阻断安装,但会误导你去升级 PHP;实际可能是镜像缓存了旧版 composer.json,没及时拉到作者刚发布的兼容新版 PHP 的修订。
实操建议:
- 加
--ignore-platform-req=php临时绕过(仅调试用),确认是否真不兼容 - 手动访问镜像 API 验证:打开
https://mirrors.aliyun.com/composer/p2/vimeo/psr-log.json(把包名换成你的),看返回里require.php值是否和 packagist.org 上一致 - 遇到高频不一致,切回官方源跑一次
composer update --dry-run对比结果,再决定是否提 issue 给镜像维护方
镜像不是万能的,它解决的是带宽和地理延迟,但没法消除语义差异和同步窗口。遇到奇怪的版本冲突,先怀疑是不是元数据还没刷过去。










