必须执行composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,缺-g、键名repo.packagist、composer类型值或url末尾斜杠任一要素均静默失效,验证需composer config -g repo.packagist输出完整json。

装完 Composer 不配镜像,等于没装——90% 的人第一次 composer install 就卡在 Loading composer repositories,不是网络差,是默认源 packagist.org 在国内根本连不上。
composer config -g repo.packagist 命令必须写对三处
这条命令看似简单,但漏一个字符就静默失效,且不报错:
-
-g不能省:缺了就只改当前项目composer.json,换目录就回退到官方源 -
repo.packagist是固定键名:写成repos.packagist、packagist.org或repository都无效 -
composer是 type 字段值:不是注释,不是可选参数,必须紧跟在键名后、URL前 - URL 必须是 HTTPS,且末尾带斜杠:
https://mirrors.aliyun.com/composer/—— 少斜杠会拼出/composerpackages.json导致 404
正确执行后验证:composer config -g repo.packagist 应输出类似:
{"type": "composer", "url": "https://mirrors.aliyun.com/composer/"}
如果返回空、null 或报错,说明命令没写对。
Windows 下 composer 命令找不到?先看 PATH 和终端上下文
哪怕你用官方安装器装了 Composer,composer 命令也未必能用:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 安装器默认不把
composer.bat加入系统 PATH,重启 CMD/PowerShell 才生效 - 如果用 Git Bash 或 WSL,PATH 不继承 Windows 环境变量,得手动加:
export PATH="$HOME/AppData/Roaming/Composer/vendor/bin:$PATH" - PHPStudy 用户注意:它的“Composer 管理”模块装的是独立副本,路径在
%PHPSStudy_DIR%\extensions\composer,和系统 PATH 无关;要用它,得手动把该路径加入 PATH,或直接进 PHPStudy 界面点“打开终端”
phpenv / 自编译 PHP 环境下,先修 CLI 才能跑 composer
phpenv 默认禁用关键函数,composer 启动就报错:
- 运行
php -r "echo function_exists('proc_open') ? 'ok' : 'fail';",输出fail就要改php.ini - 找到对应版本的
php.ini(用phpenv which php定位),删掉disable_functions中的proc_open、putenv、pcntl_signal - 确认启用
openssl和tokenizer扩展:php -m | grep -E "openssl|tokenizer",缺一不可 - 下载
composer.phar后别双击运行,必须用php composer.phar --version测试;设为全局命令时,确保~/.phpenv/bin在 PATH 中
项目级配置比全局更可靠,尤其 CI 和多用户场景
全局镜像在真实协作中容易失效:
- CI 流水线常以
www或runner用户运行,而-g配置写在你自己的~/.composer/config.json里,权限不对就读不到 - 项目里写了
"packagist.org": false,会直接屏蔽全局镜像 - 新人 clone 项目后行为不一致,因为全局配置无法被 Git 跟踪
推荐做法:进项目根目录,运行
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
它会自动在 composer.json 顶层添加 "repositories" 对象,key 固定为 "packagist",不覆盖已有私有源——前提是原 repositories 是对象结构(不是数组)。如果已是数组,别手动覆盖,用命令追加,否则可能误删内部私有包源。
镜像只解决元数据拉取和 ZIP 下载慢的问题,不加速依赖解析。如果 composer update 卡在 Resolving dependencies,得查 composer.json 里的 PHP 版本约束、dev 分支引用或 require-dev 工具数量,跟镜像无关。










