composer 命令能否执行取决于 path 环境变量是否包含其可执行文件路径,而非 composer.phar 位置或 php 安装路径;需用 where/which 查看实际调用路径,并确保对应 vendor/bin 目录已加入 path,且修改后重启终端验证。

Composer 命令能执行,不等于它在你预期的位置运行——PATH 才是唯一决定因素,不是 composer.phar 放在哪、也不是 PHP 装在哪。
where composer 或 which composer 输出的路径就是真实入口
Windows 用户运行 where composer,Linux/macOS 用户运行 which composer,输出结果就是系统实际调用的可执行文件位置。这个路径必须出现在你的 PATH 环境变量中,否则命令根本不会启动。
- 如果输出为空或报错,说明 PATH 里没包含 composer 可执行文件所在目录
- 如果输出多个路径(尤其 Windows),说明有旧版本残留,
composer --version显示的版本可能不是你刚装的那个 - 官方 Windows 安装器默认放
C:\ProgramData\ComposerSetup\bin;手动安装则取决于你把composer.phar放哪了——它本身不是命令,得靠composer.bat或软链接包装
PATH 必须包含全局 bin 目录才能用 laravel、phpunit 等命令
通过 composer global require laravel/installer 安装的工具,二进制文件默认放在 ~/.composer/vendor/bin(Linux/macOS)或 %APPDATA%\Composer\vendor\bin(Windows)。Composer 不会自动把这个路径加进 PATH。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- Linux/macOS:在
~/.zshrc或~/.bashrc末尾加export PATH="$HOME/.composer/vendor/bin:$PATH",然后运行source ~/.zshrc - Windows:把
%APPDATA%\Composer\vendor\bin加入「系统属性 → 环境变量 → 用户变量 Path」,注意不要带末尾反斜杠 - 如果改过
COMPOSER_HOME,比如设成D:\my-composer,那实际 bin 路径就是D:\my-composer\vendor\bin,PATH 必须同步更新 - 验证方式:
echo $PATH或echo %PATH%看对应路径是否存在,再试laravel --version
COMPOSER_HOME 改了但命令失效?大概率是 vendor/bin 没进 PATH 或 auth.json 缺失
COMPOSER_HOME 决定全局配置、缓存、插件和 vendor/bin 的根位置。但它不自动让这些生效——你得手动把新路径下的 vendor/bin 加进 PATH,还得确保 auth.json 已迁移过去。
- 设置
COMPOSER_HOME后,先运行composer config --global home确认输出是你设的路径 - mkdir -p $COMPOSER_HOME(Windows 对应
mkdir D:\my-composer),再把原~/.composer/auth.json拷过去 - Linux/macOS 注意权限:
chmod 600 $COMPOSER_HOME/auth.json,否则认证静默失败 - 全局包不会自动重装,需手动运行
composer global install(不是update)
最常被忽略的一点:PATH 更新后必须新开终端验证,旧窗口环境变量不会刷新;Git Bash 用户还要确认 Windows 的 Path 是否真正加载成功,不能只信 PowerShell 里的测试结果。










