windows上composer命令找不到,99%是path未正确配置composer.bat所在目录(如c:\programdata\composersetup\bin),需手动添加该路径到系统环境变量,关闭所有终端后新开验证。

Windows 上 composer 命令找不到,99% 是 PATH 没配对,不是没装好,也不是 PHP 有问题——先别重装,直接查路径、加变量、新开终端。
composer 命令报“不是内部或外部命令”
这是最常见现象,本质是系统根本不知道 composer 这个命令在哪。安装程序(Composer-Setup.exe)勾选了“Add to PATH”,但 Windows 权限、杀毒软件或 UAC 常导致写入失败,最终 PATH 里压根没有 Composer 的路径。
- 先确认
composer.phar文件真实存在:打开文件资源管理器,访问C:\ProgramData\ComposerSetup\bin\(系统级安装)或%LOCALAPPDATA%\ComposerSetup\bin\(用户级),看里面是否有composer.phar和composer.bat - 把该目录(只到
bin这一级,不含composer.phar)手动加进「系统变量」里的Path:控制面板 → 系统 → 高级系统设置 → 环境变量 → 系统变量 →Path→ 新建 - 必须关闭所有已打开的 CMD/PowerShell/VS Code 终端,再新开一个,否则旧进程不会读新 PATH
- 在新终端里运行
echo %PATH%,搜索你刚加的路径;再输composer --version验证
composer global require 安装的命令(如 laravel)找不到
这是另一个独立问题:composer global require 下载的可执行文件(比如 laravel.bat)默认放在 %APPDATA%\Composer\vendor\bin,这个路径和 composer 自身的 bin 目录完全不一样,安装程序从不自动把它加进 PATH。
Windows 命令行编码与兼容规范。涵盖 GBK/UTF-8 编码、PowerShell/pwsh 互操作、Python/Node.js、Git 配置及代码生成规则。适用于 Windows 10/11 + MSYS2/Git Bash 环境下的所有命令行操作。
- 运行
composer config --global home查出全局根目录,拼上\vendor\bin就是真实路径(例如C:\Users\Alice\AppData\Roaming\Composer\vendor\bin) - 用文件资源管理器打开该路径,确认里面有你要的命令(如
laravel.bat),如果为空,说明global require执行失败,或包没声明"bin"字段 - 把这个
\vendor\bin路径单独加进「用户变量」里的Path(不是系统变量),避免权限冲突 - 同样要关掉所有终端重开,再试
laravel -V -
composer config --global bin-dir对全局命令无效,它只影响项目级vendor/bin,设了也白设
PHP 扩展缺失导致 install 卡在 “Resolving packages…” 或报 SSL 错误
Composer 不是独立程序,它重度依赖 PHP CLI 的扩展能力。Windows 下默认关闭 openssl、curl、zlib,缺一个就可能卡住或报错。
- 运行
php --ini查Loaded Configuration File路径,用记事本打开对应php.ini - 去掉以下三行前面的分号:
extension=openssl、extension=curl、extension=zlib - 保存后,在新终端运行
php -m | findstr openssl和php -m | findstr curl确认加载成功 - 注意:XAMPP/WAMP/独立 ZIP 包可能有多个
php.ini,务必改对 CLI 版本用的那个;php-win.exe不输出错误,容易误判 - 如果用的是 PHP 8.2+,还要检查
ext-zip是否启用,否则create-project会失败
国内用户 create-project 卡死或超时
不是网络断了,是直连 packagist.org DNS 解析慢、连接不稳定。官方源在国内基本不可用,必须切镜像,且全局配置优先级高于项目级,但会被项目 composer.json 里的 repositories 覆盖。
- 执行一次全局镜像设置:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/(阿里云)或https://mirrors.cloud.tencent.com/composer/(腾讯云) - 别用已停服的
phpcomposer.com镜像,它自 2022 年起就不可用 - 如果项目里已有
repositories字段,全局镜像不生效,得去项目composer.json里改,或者临时用--repository-url指定 - Windows Defender 有时会严重拖慢
composer update,建议把composer.phar所在目录加入 Defender 排除列表
PATH 加错位置、PHP 扩展没启全、终端没重开——这三个点漏掉任何一个,都会让配置看起来“做了但没用”。尤其是 composer global 的 bin 目录和 composer 自身的 bin 目录,是两个物理路径,必须分别加进环境变量。










