根本原因是默认撞墙式拉包+废弃fxp插件强制bower下载,解决方案为:换阿里云镜像(末尾/不可省)、卸载fxp/composer-asset-plugin、补asset-packagist.cn源、清空vendor和composer.lock后重装,并推荐使用--prefer-dist、--no-scripts等参数加速创建。

Yii2.0项目部署时Composer依赖下载太慢,不是网络差或配置错,而是默认撞墙式拉取国外包源+废弃插件强行触发Bower下载,导致反复超时、卡在Installing dependencies不动、甚至耗尽内存中断安装。
换镜像 + 卸载fxp插件(必须同步做)
第一步:全局切换为阿里云镜像源,命令末尾【/不可省】:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
第二步:彻底卸载已废弃的fxp/composer-asset-plugin插件——它会强制调用Node.js去访问被墙的bower.io,留着就等于主动给自己加三倍耗时:
composer global remove fxp/composer-asset-plugin
第三步:补上国内前端资源源,避免jquery等bower-asset类包找不到:
composer config -g repositories.asset-packagist '{"type": "composer", "url": "https://asset-packagist.cn"}'
第四步:验证是否生效——运行composer config -g repo.packagist,输出必须是https://mirrors.aliyun.com/composer/,否则镜像未写入成功。
删干净再重装(关键清理动作)
已有vendor和composer.lock的项目,直接运行composer install大概率报hash mismatch或“no matching package found”,因为旧lock文件记录的是官方源路径,新镜像无法匹配。
执行以下两步清空残留:
rm -rf vendor composer.lock
composer clear-cache
这一步不能跳过。不清掉vendor和lock,所有镜像配置都等于白配。
创建新项目时加参数提速
方法一:用--prefer-dist强制下ZIP包,跳过Git clone:
composer create-project --prefer-dist yiisoft/yii2-app-advanced myapp
方法二:加--no-scripts跳过init脚本,避免因缺少php-gd或权限问题中断;加--ignore-platform-reqs绕过PHP版本限制(如本地7.3装要求≥7.4的模板):
composer create-project --prefer-dist --no-scripts --ignore-platform-reqs yiisoft/yii2-app-basic basic
方法三:如果公司内网有私有镜像,把https://mirrors.aliyun.com/composer/换成内部地址,但要确认该镜像已开启allow-plugins兼容模式(Composer 2.2+默认禁用未声明插件)。
实在卡死就用归档包(离线可用)
Yii官方提供预装完整vendor的zip包,跳过所有远程依赖解析与资产下载:
基础版下载地址:yii2-basic.zip
高级版下载地址:yii2-advanced.zip
解压后,只需将Web服务器根目录指向web/(basic)或frontend/web/(advanced),再配置config/db.php即可运行。
若已有create-project拉下的模板但卡在vendor,可手动补全:访问Packagist对应版本页面→点击.zip下载→解压→把其中vendor/整个复制到项目根目录→执行php init。











