直接复制全局配置文件是最可靠备份方式:先用composer config --global --list确认路径(如~/.composer/config.json),再用cp命令备份并添加时间戳,例如cp ~/.composer/config.json ~/.composer/config.json.backup-20260415;切勿手动编辑或重建该json文件,避免格式错误导致composer命令全部失败。

怎么备份 Composer 全局配置文件本身
Composer 全局配置没有“导出命令”,composer config --global 写入的配置就存放在一个 JSON 文件里,直接复制它就是最可靠、最轻量的备份方式。
常见错误是以为运行 composer config --global --list 输出的内容能直接拿来还原——那只是只读快照,不是可写入的配置源。
- 先确认真实路径:
composer config --global --list第一行显示的 “Global configuration file” 路径(如/home/user/.composer/config.json或%APPDATA%\Composer\config.json) - 用
cp或文件管理器复制该文件,建议加时间戳命名,例如:cp ~/.composer/config.json ~/.composer/config.json.backup-20260415 - 别手动新建空
config.json再粘贴内容——JSON 格式极敏感,少个逗号或引号不闭合,后续所有composer命令都会报file_get_contents(): Failed to open stream - 如果用了
COMPOSER_HOME环境变量,备份前务必确认它指向的位置,否则可能备份了错误文件
怎么备份已全局安装的插件(如 laravel/installer)
全局安装的包本身不被 composer.json 或 composer.lock 记录,也没有官方导出机制。但它们实际就装在 COMPOSER_HOME/vendor/ 下,且二进制入口统一放在 COMPOSER_HOME/vendor/bin/。
真正需要备份的,是「哪些包装了 + 它们的版本」,而不是文件本身——因为重装比复制 vendor 更安全、更兼容。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 列出所有全局已安装包:
composer global show --format=plain(输出包名+版本,适合人工核对) - 导出为机器可读格式(比如供 CI 检查):
composer global show --format=json - 只导出根依赖(排除自动拉进来的嵌套依赖):
composer global show --direct --format=plain - 注意:
composer global list已废弃,不要用;composer show不带global是查当前项目的,容易混淆
为什么不能用 composer install 恢复全局环境
composer install 只作用于当前目录下的 composer.json,它完全不感知全局配置或全局安装的包。想靠它“恢复全局状态”,属于方向性错误。
全局环境的本质是两件事:配置文件 + 一组 composer global require 命令的历史结果。这两者无法被单一命令驱动重建。
- 配置文件备份后,用
composer config --global逐项还原最稳妥(例如:composer config --global repo.packagist composer https://mirrors.aliyun.com/composer/) - 插件列表备份后,用脚本循环执行
composer global require vendor/name:^x.y即可,比复制vendor/目录更干净(避免权限、平台差异、checksum 失效等问题) - 别试图删掉
~/.composer/vendor后跑composer global update——它会升级所有包,很可能引入不兼容变更
最容易被忽略的 PATH 问题
即使你完整备份并还原了全局配置和插件,如果系统 PATH 没包含 COMPOSER_HOME/vendor/bin,敲 laravel 或 phpunit 依然会报 command not found。
这个路径不是 Composer 自动加的,必须由你手动配置,且终端需重启才生效。
- Linux/macOS:检查
~/.zshrc或~/.bashrc是否含类似这行:export PATH="$HOME/.composer/vendor/bin:$PATH"(若改了COMPOSER_HOME,路径要同步更新) - Windows:确认系统环境变量
PATH包含%APPDATA%\Composer\vendor\bin(PowerShell 中%APPDATA%不自动展开,得用完整路径) - 验证是否生效:
echo $PATH(macOS/Linux)或echo %PATH%(Windows),再运行which laravel或where laravel










