根本原因是Composer全局bin目录未加入系统PATH;应运行composer global config bin-dir --absolute获取准确路径,再将其添加到shell配置文件(如~/.zshrc)或Windows环境变量中,并重载配置或重启终端验证。

composer global require 后命令找不到,PATH 没加对
装完 laravel/installer 或 phpunit/phpunit 还是敲 laravel 报 command not found,根本原因就一个:Composer 把可执行文件放进了全局 bin 目录,但这个目录没进系统 PATH。
Linux/macOS 默认路径是 ~/.composer/vendor/bin(v2.2+ 可能是 ~/.config/composer/vendor/bin),Windows 是 %APPDATA%\Composer\vendor\bin。别猜,直接运行:
composer global config bin-dir --absolute
输出啥,就用啥路径。常见错误包括:
- 把
%APPDATA%\Composer\bin当成正确路径(实际是vendor\bin) - 改了
bin-dir但没同步更新系统PATH(composer config --global bin-dir /usr/local/bin只是换位置,PATH 还得自己加) - 加完 PATH 没新开终端,或忘了
source ~/.zshrc
Linux/macOS 怎么把全局 bin 加进 PATH
确认当前 shell 是 zsh(macOS Catalina+ 默认)还是 bash,再改对应配置文件:
- 查 shell:
echo $SHELL - zsh 用户改
~/.zshrc,bash 用户改~/.bashrc - 在文件末尾追加:
export PATH="$(composer global config bin-dir --absolute):$PATH" - 立即生效:
source ~/.zshrc(或source ~/.bashrc)
别用 $HOME/.composer/vendor/bin 硬编码——万一你改过 COMPOSER_HOME,路径就错了。用 composer global config bin-dir --absolute 动态取值最稳。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
Windows PowerShell 下 laravel.bat 找不到 php
PowerShell 里运行 laravel 报 'php' 不是内部或外部命令,不是 Composer 的问题,是 .bat 脚本依赖的 php 命令本身不在 PATH 中。
验证方式:php --version 如果也报错,说明 PHP CLI 没配好。解决步骤:
- 确认 PHP 已安装,并且
php.exe所在目录(如C:\php)已加入系统PATH - 在「系统属性 → 高级 → 环境变量」中,把
%APPDATA%\Composer\vendor\bin和 PHP 目录都加进「用户变量」的PATH - PowerShell 不会自动继承新环境变量,必须关掉所有终端重开;VS Code 内置终端也要重启窗口
- 别在 PowerShell 里用
$env:PATH += "..."临时追加——它只影响当前会话,不持久,也不影响.bat调用链
为什么 vendor/bin 下有 phpunit,但 global install 后却没生成?
composer global require phpunit/phpunit 成功,不代表一定能敲 phpunit。关键看包有没有声明 "bin" 字段:
- 只有
composer.json里写了"bin": ["phpunit"],Composer 才会在bin目录下建软链接或.bat - 查一个包是否提供命令行入口,直接看 Packagist 页面的 “Binaries” 栏,或翻它 GitHub 上的
composer.json - 有些包只写
"bin": ["script.php"],但脚本开头没有#!/usr/bin/env php,或没加执行权限(Linux/macOS),也会失败 - Windows 上若
php不在PATH,script.php对应的.bat就必然失败
真正容易被忽略的是:全局 bin 和项目 vendor/bin 完全隔离。你在项目里 composer require phpunit/phpunit,只影响当前项目的 vendor/bin/phpunit,和全局命令无关。

















