composer global require 是唯一有效的全局安装命令,它将包安装到全局 vendor 目录并生成二进制文件,但需手动将 vendor/bin 路径加入系统 path 才能调用命令。

composer global require 是唯一有效的全局安装命令
Composer 没有独立的 composer global 命令,所谓“全局安装”,实际就是执行 composer global require vendor/package-name。它会把包装进 Composer 的全局 vendor 目录(默认是 ~/.composer/vendor 或 %APPDATA%\Composer\vendor),但二进制文件(如 laravel、php-cs-fixer)只放在 vendor/bin/ 下,不会自动生效。
- 必须手动把
~/.composer/vendor/bin(Linux/macOS)或%USERPROFILE%\AppData\Roaming\Composer\vendor\bin(Windows)加进系统PATH,否则终端一定报command not found - 别用
sudo composer global require—— 权限错会导致后续所有全局操作失败,正确做法是确保~/.composer归属当前用户:chown -R $USER ~/.composer - 安装后不重启 shell 或没
source配置文件,PATH 变更不会生效;macOS / Linux 用户注意:zsh 用户改的是~/.zshrc,不是~/.bashrc
PATH 配置不到位,90% 的“命令找不到”都发生在这里
全局安装完却调不了命令?八成是 vendor/bin 路径没进 PATH。这不是 Composer 的 bug,是 Unix/Linux/Windows 系统机制决定的:可执行文件必须在 PATH 列表里,shell 才能定位到它。
- Linux/macOS:运行
echo $PATH查看是否含~/.composer/vendor/bin;若无,追加export PATH="$HOME/.composer/vendor/bin:$PATH"到~/.zshrc(或~/.bash_profile),再执行source ~/.zshrc - Windows:打开「系统属性 → 高级 → 环境变量」→ 在「用户变量」中编辑
Path→ 新增一行:%USERPROFILE%\AppData\Roaming\Composer\vendor\bin - 验证是否成功:运行
which laravel(macOS/Linux)或where laravel(Windows);或直接输laravel --version,有输出即通
更新和管理全局包:用 update,别乱删 vendor 目录
全局包不是一次安装就一劳永逸。版本过旧可能不兼容新 PHP,或缺失安全修复。维护方式很明确:用 composer global update,而不是手动删 ~/.composer/vendor 或改 composer.json。
工作流任务拆解与模型编排技能。使用场景:(1) 收到复杂工作任务需要拆解为可执行步骤,(2) 需要为不同步骤选择最合适的模型,(3) 需要跟踪工作流进度和模型使用情况,(4) 长时间任务卡住需要问题诊断和解决方案。
- 升级全部包:
composer global update—— 它会读取~/.composer/composer.json并按约束拉最新兼容版 - 只升某个包:
composer global update friendsofphp/php-cs-fixer,比require更安全(不会意外引入新依赖) - 想降级或切特定版本?直接
composer global require friendsofphp/php-cs-fixer:^3.0即可覆盖,Composer 会自动处理依赖冲突 - 误删了
vendor?别慌,composer global install可从composer.json恢复,前提是该文件还在
COMPOSER_HOME 可以改,但改完要重装,且 IDE 可能认不出旧命令
全局目录位置由环境变量 COMPOSER_HOME 控制,不是 Composer 安装时定死的。你可以把它指向自定义路径,比如迁移到 SSD 或统一管理多个 PHP 版本的工具链。
- Linux/macOS 设置:
export COMPOSER_HOME="/opt/composer-global",然后运行任意composer global命令,它会自动初始化新目录结构 - Windows 设置:
setx COMPOSER_HOME "D:\my-composer"(需重启 cmd 或 PowerShell) - ⚠️ 注意:改完后,原来装在
~/.composer里的包不会迁移,得重新require;某些 IDE(如 PhpStorm)硬编码了旧vendor/bin路径,改完后可能提示 “phpunit not found”,需要手动刷新 CLI 解释器配置 - 不建议为“整洁”而改 —— 除非你真有跨环境同步、权限隔离或多版本共存需求
真正卡住人的从来不是命令怎么敲,而是 PATH 没生效、权限不对、或者以为 global 是个独立子命令。把 vendor/bin 加进 PATH 这一步漏掉,后面所有操作都是白忙。










