换国内镜像源可显著提升 composer 安装 php 扩展速度,但需满足三个硬性条件:键名必须为 repo.packagist(不能多 s)、值中必须含 "type": "composer"、url 末尾必须有斜杠 /;否则将静默回退至官方源。

composer 安装 PHP 扩展慢,不是网络差,是默认还在直连 packagist.org —— 换国内镜像源能立竿见影,但配错一个字符就静默失效。
为什么换镜像后还是卡在 Downloading?
根本不是镜像没生效,而是你漏了三个硬性条件:repo.packagist 键名不能多写 s、中间必须带 composer 类型值、URL 末尾必须有斜杠 /。漏掉任意一个,composer install 就会 fallback 到官方源,你还以为是“网不好”。
-
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/是唯一推荐命令,别手改~/.composer/config.json - 验证是否真写进去了:运行
composer config -g repo.packagist,输出必须是完整 URL 或 JSON 对象,空、null、或仍是https://packagist.org都说明失败 - Composer 2.2+ 对键名更敏感,部分版本已倾向用
repositories.packagist.org替代repo.packagist;若确认无效,可试:composer config -g repositories.packagist.org '{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}'
Yii2 扩展安装卡死?先干掉 fxp/composer-asset-plugin
这个插件早已废弃,却仍是 Yii2 安装卡住的头号元凶:它强行拉 Bower 包,而国内访问 bower.io 基本超时,还会启一堆 Node.js 进程反复失败。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 彻底卸载:
composer global remove fxp/composer-asset-plugin - 切换到纯 Composer 方式:
composer config -g fxp-asset.installer-paths {"npm-asset-library": "vendor/npm", "bower-asset-library": "vendor/bower"} - 加 asset-packagist.cn 源:
composer config -g repositories.asset-packagist '{"type": "composer", "url": "https://asset-packagist.cn"}' - 删掉项目
composer.json里所有"replace": {"bower-asset/*": "*"}声明,否则前端资源直接跳过
装扩展时还卡在 github.com?加参数绕过
即使镜像配对了,某些扩展(比如 yii2-auth-client)仍可能卡在 GitHub,本质是依赖解析阶段没兜住。这时候别等,直接干预:
-
--prefer-dist:强制下载 ZIP 包,比 Git clone 快且不走 SSH/HTTPS 认证 -
--ignore-platform-reqs:绕过 PHP 版本限制(例如你用 PHP 7.3 装要求 ≥7.4 的扩展) -
--no-scripts:跳过post-install-cmd,避免因缺失环境(如 Node、Git)中断 - 示例:
composer require --prefer-dist --ignore-platform-reqs --no-scripts yiisoft/yii2-redis
换源后报 hash does not match?删 vendor 和 lock 再来
镜像只加速下载,不改变包内容;但旧 composer.lock 里存的是官方源的哈希值,和镜像返回的元数据不兼容——这不是配置问题,是缓存污染。
- 必须执行:
composer clear-cache+rm -rf vendor composer.lock - 再跑
composer install(不是update),让 Composer 从镜像拉取全新元数据并生成新 lock 文件 - 临时验证是否真走镜像:加
-vvv参数跑一次composer install,日志里出现https---mirrors-aliyun-com-composer才算真正生效
repo.packagist 在旧版通用,新版建议用 repositories.packagist.org;更麻烦的是,项目级配置会覆盖全局,而 CI 环境里全局配置又常常不生效——所以最稳的做法,是全局配好 + 项目里也用 composer config repo.packagist ... 补一发。php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










