90%是因为path未配置,而非安装失败;composer global require仅将包放入全局vendor目录并链接bin脚本,必须手动将~/.composer/vendor/bin(linux/macos)或%appdata%\composer\vendor\bin(windows)加入系统path,重启终端后方可执行。

装完 composer global require 的命令还是报 command not found,90% 是因为 PATH 没配对,不是安装失败。
为什么 composer global require 装完命令却找不到
它只做两件事:把包放进 ~/.composer/vendor(Linux/macOS)或 %APPDATA%\Composer\vendor(Windows),再把 bin 字段声明的脚本链接到对应 vendor/bin/ 目录。shell 根本不认这个路径,除非你手动加进系统 PATH。
- 常见错误现象:
which laravel或where php-cs-fixer无输出 -
echo $PATH(macOS/Linux)或echo %PATH%(Windows)里没出现~/.composer/vendor/bin或%APPDATA%\Composer\vendor\bin - 误以为
composer global是个独立命令,输完直接报错
怎么配 PATH 才能让全局命令真正可用
先确认真实路径:composer config --global home,再拼出 vendor/bin 子路径。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- macOS/Linux:
~/.zshrc(zsh 用户)或~/.bash_profile(bash 用户)末尾加export PATH="$HOME/.composer/vendor/bin:$PATH",然后运行source ~/.zshrc - Windows:在「环境变量」→「用户变量」→「Path」中新增完整路径,例如
C:\Users\Alice\AppData\Roaming\Composer\vendor\bin(不能写%APPDATA%) - 改完必须新开终端,旧窗口不会重载
PATH - IDE(如 PHPStorm)通常不继承 shell 的
PATH,需在设置里单独指定 CLI 解释器路径
composer global 必须带子命令,没有“裸 global”
composer global 本身不是命令,直接输会报错或只显示帮助——这是 Composer 的设计逻辑,不是你打错了。
- 有效子命令只有这几个:
composer global require、composer global update、composer global remove(≥ 2.5)、composer global exec(≥ 5.4) -
composer global require是唯一安装入口;--dev参数会被忽略,全局没有 dev 概念 - 别用
sudo composer global require:会导致~/.composer归属 root,后续所有全局操作权限失败;修复用chown -R $USER ~/.composer
哪些包适合 composer global require,哪些绝对不行
它只适合装终端里敲命令就能跑的 CLI 工具,和项目运行时完全隔离——vendor/autoload.php 不加载它们,require 或 use 也找不到。
- ✅ 合适场景:
laravel/installer(laravel new)、phpunit/phpunit(phpunit)、phpstan/phpstan(phpstan)、friendsofphp/php-cs-fixer(php-cs-fixer) - ❌ 绝对禁止:
monolog/monolog、guzzlehttp/guzzle这类业务逻辑库——部署时会缺失,本地和线上行为不一致 -
composer global update风险高:它会强制拉取所有全局包的最新兼容版本,而不同工具依赖的symfony/console、PHP 版本可能冲突,报错时连哪个包导致的都难定位
最常被忽略的一点:PATH 配完不重启终端或不重载配置,就等于没配;验证必须用 which 或 where,而不是只看 composer global list ——后者只说明包在目录里,不保证能执行。










