必须用composer config --global --list确认,首行“Global configuration file”即真实路径;新版Composer 2.x只认config.json且默认不存在,需执行composer config --global后生成。

Composer 的全局 config.json 文件没有固定路径,必须用命令查,靠记忆或文档猜大概率错。
怎么确认当前生效的 config.json 路径
执行这条命令,输出第一行就是真实路径:
composer config --global --list
它比 composer config --global home 更可靠,因为后者只输出目录,而 --list 还会显示配置是否被读取、有没有语法错误。如果第一行是 Global configuration file: /path/to/config.json,那就直接去这个位置找文件。
- Linux/macOS 下常见路径有两个可能:
~/.composer/config.json或~/.config/composer/config.json(2.2+ 版本优先读后者) - Windows 下常见路径是:
%APPDATA%\Composer\config.json,但 PowerShell 里%APPDATA%不自动展开,手拼会静默失败 - 如果
COMPOSER_HOME环境变量被设过,那一切以它为准;没设才 fallback 到默认路径
为什么明明改了 ~/.composer/config.json 却不生效
最常见原因是:你用 sudo composer config -g 写进了 /root/.composer/config.json,但 PHP-FPM、Nginx 或宝塔后台是以 www 用户运行的,它根本不会读 /root/ 下的配置。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 先确认当前命令执行用户:
whoami - 再检查对应家目录下的
.composer/config.json,比如/home/www/.composer/config.json - 项目级
repositories字段会静默覆盖全局镜像设置,哪怕只写了一行"packagist.org": false - CI 容器若挂载了空的
/root/.composer,就会退回到官方源,和本地行为不一致
修改 config.json 的安全方式
别手动编辑文件——格式出错会导致后续所有 composer 命令报 JSON 解析错误。一律用 config 子命令:
composer config --global repo.packagist composer https://mirrors.aliyun.com/composer/
这条命令会自动创建文件、校验 JSON 格式、写入正确字段结构。
- 想改缓存路径?用
composer config --global cache-dir /data/composer-cache,注意路径必须存在且可写,不能带~ - 想删某个键?加
--unset参数,例如composer config --global --unset repos.packagist - 编辑前先备份:
cp ~/.composer/config.json ~/.composer/config.json.bak
真正容易被忽略的点是:不同 shell(PowerShell / Git Bash / WSL)、不同用户(root / www / deploy)、不同 Composer 版本(2.1 vs 2.4),对 HOME 和 COMPOSER_HOME 的解析逻辑完全不同,所以「路径」这件事从来不是静态知识,而是每次都要验证的运行时状态。

















