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

composer global require 装的命令找不到,90% 是因为 ~/.composer/vendor/bin(Linux/macOS)或 %APPDATA%\Composer\vendor\bin(Windows)没进系统 PATH,不是安装失败,也不是网络问题。
为什么 composer global require 装完命令还是 command not found
它只做两件事:把包解压到全局 vendor/ 目录,再把 bin 字段声明的可执行脚本软链接到对应 vendor/bin/ 下。shell 根本不关心你装了啥,只认 PATH 里有没有那个路径。
- 常见错误现象:
which phpunit或where laravel无输出;echo $PATH(macOS/Linux)或echo %PATH%(Windows)里没出现vendor/bin路径 - 别猜路径,用命令确认真实位置:
composer global config bin-dir --absolute - Windows 用户注意:
%APPDATA%是变量,不能直接写进环境变量——必须展开成完整路径,例如C:\Users\Alice\AppData\Roaming\Composer\vendor\bin - 改完配置后必须新开终端,旧窗口不会重载
PATH
怎么安全添加 vendor/bin 到系统 PATH
加错路径、权限不对、没重载,都会导致白配。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- Linux/macOS:
echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc(zsh 用户);bash 用户改~/.bash_profile - Windows:打开「系统属性 → 高级 → 环境变量」→ 在「用户变量」的
Path里新增一行,填完整路径(不是变量),然后重启 CMD/PowerShell - 如果改过
COMPOSER_HOME(比如composer config --global home /opt/composer),那bin路径就变成/opt/composer/vendor/bin,PATH也得同步改 - IDE(如 PHPStorm)通常不继承 shell 的
PATH,需在设置里单独指定 CLI 解释器路径,否则终端能跑、IDE 里报错
composer global require 能装什么、不能装什么
它不是“让所有项目都能用这个库”,而是装终端里敲命令就能跑的 CLI 工具,和项目运行时完全隔离。
- ✅ 合适的包:
laravel/installer(命令是laravel)、phpstan/phpstan(命令是phpstan)、friendsofphp/php-cs-fixer(命令是php-cs-fixer) - ❌ 绝对禁止:
monolog/monolog、guzzlehttp/guzzle——它们没有可执行入口,装了也没命令可用,还会污染全局 autoload 映射 -
--dev参数会被忽略:composer global require --dev phpunit/phpunit和不加一样,全局没有 dev 依赖概念 - 别用
sudo composer global require:会导致~/.composer归属 root,后续所有操作权限失败;修复要chown -R $USER ~/.composer
国内用户必须配镜像 + 清缓存
不配镜像,composer global require 卡在 Resolving dependencies 是常态,不是 Composer 慢,是 packagist.org 连接被干扰。
- 全局设阿里云镜像:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 设完立刻清缓存:
composer clear-cache,否则旧源还在内存里继续试 - 阿里云镜像偶尔有几小时同步延迟;如果某个新版本死活拉不到,临时切回官方源:
composer config -g --unset repo.packagist - 验证是否生效:
composer global require phpunit/phpunit --dry-run看是否快速跳过解析阶段
最常被忽略的是:改完 PATH 后不新开终端,或者 IDE 没单独配置 CLI 路径,导致你以为配置失败,其实只是环境没刷新。还有就是误把业务类库当工具装,清理时残留 autoload 映射,影响后续全局命令执行。










