composer全局命令需手动将~/.composer/vendor/bin(或自定义路径)加入path,否则报command not found;执行export path="$home/.composer/vendor/bin:$path"并重载配置后,用which laravel验证。

“composer global” 不是一个独立命令,真正起作用的是 composer global require —— 但光执行这行命令,90% 的人装完还是用不了。
为什么 laravel 命令始终报 command not found
不是安装失败,是系统根本没找到那个可执行文件。Composer 把 laravel 这个二进制软链接放到了 ~/.composer/vendor/bin/(macOS/Linux)或 %APPDATA%\Composer\vendor\bin(Windows),而这个路径默认不在你的 PATH 里。
- 检查是否已生效:
echo $PATH(macOS/Linux)或echo %PATH%(Windows),看输出里有没有包含上面那个bin路径 - 没看到?那就手动加:
macOS/Linux:在~/.zshrc或~/.bashrc末尾加一行export PATH="$HOME/.composer/vendor/bin:$PATH",然后运行source ~/.zshrc
Windows:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」→ 在「用户变量」的Path里新增%APPDATA%\Composer\vendor\bin - 改完必须新开终端,旧窗口不认新
PATH - 验证方式:
which laravel(macOS/Linux)或where laravel(Windows)能打出路径才算成功
composer global require 的真实行为和常见误操作
它做的事很明确:把包装进全局 vendor 目录,并把 composer.json 里 bin 字段声明的脚本,软链接到全局 bin 目录。不是复制,是链接 —— 所以删掉 ~/.composer/vendor,所有命令立刻失效。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
-
composer global require laravel/installer是对的;composer global单独敲会报错 —— 因为它根本不是子命令 -
--dev参数会被忽略:composer global require --dev phpunit/phpunit和不加一样,全局没有require-dev概念 - 别用
sudo:权限错误通常是因为~/.composer归属不对,运行chown -R $USER ~/.composer更安全 - 想看装了啥:
composer global list;想查某个包提供了什么命令:composer global show laravel/installer --all | grep bin
升级、卸载和 global update 的现实风险
composer global update 看起来方便,实际极容易失败。它会强行拉取所有全局包的最新兼容版本,但不同工具依赖的 symfony/console、php 版本可能互相打架,报错时连哪个包冲突都看不到。
- 日常维护优先用:
composer global outdated—— 它只告诉你哪些能升,不改任何东西 - 真要升级某个包:
composer global require laravel/installer:^5.0,显式指定版本约束更可控 - 卸载不是
remove,而是重装空包:composer global require laravel/installer:dev-none(或直接删~/.composer/vendor/laravel目录) - 很多工具(如
phpunit、php-cs-fixer)现在更推荐项目内安装 +./vendor/bin/xxx调用,避免全局依赖污染
路径被自定义后,PATH 必须同步更新
如果你执行过 composer config --global home /opt/composer,那全局包就不再装在 ~/.composer,而是 /opt/composer/vendor/bin —— 但很多人忘了改 PATH,结果装了一堆包,命令全不可见。
- 查当前全局根目录:
composer config --global home - 对应
bin路径就是[输出路径]/vendor/bin,必须确保这个完整路径进了PATH -
COMPOSER_HOME必须是绝对路径,不能含~或$HOME;设错会导致autoload失效、缓存乱掉、甚至composer self-update失败 - 改完记得重启终端,
composer config --list --global可确认配置是否真正加载
最常被跳过的一步,是确认 ~/.composer/vendor/bin(或你自定义的路径)是否真的在 PATH 里 —— 不是“我以为加了”,而是 echo $PATH 里真有。其他所有操作,都建立在这个前提之上。










