PHP 已就绪且 openssl 扩展已启用是 Composer 正常运行的前提:需确认 php -v 显示版本(≥8.1),php -m | findstr openssl 有输出,否则需在 php.ini 中启用 extension=openssl 并重启终端;WAMP/XAMPP 用户须在命令行验证而非仅依赖面板;Composer-Setup.exe 安装时须手动指定 php.exe 路径;安装后需验证 PATH 是否包含 C:\ProgramData\ComposerSetup\bin,并用 where composer 和直接调用 composer.phar 排错;最后务必配置阿里云镜像并测试 composer require 成功生成 vendor/ 目录。

确认 PHP 已就绪且 openssl 扩展已启用
Composer 是 PHP 脚本,不是独立程序——没 PHP 或 php_openssl.dll 关闭,安装器会静默失败,或后续执行 composer require 时直接报 SSL 错误、连接超时。
- 在 CMD 中运行
php -v,必须看到版本号(建议 ≥ 8.1);若提示“不是内部或外部命令”,说明php.exe路径未加入系统PATH - 运行
php -m | findstr openssl,有输出即表示已启用;若无输出,打开php.ini(用php --ini定位),取消注释;extension=openssl或;extension=php_openssl.dll,保存后重启终端 - WAMP/XAMPP 用户注意:面板里启用了 OpenSSL ≠ CLI 模式启用,务必在命令行验证,而非仅靠 Apache 日志
用 Composer-Setup.exe 安装(推荐,但需手动干预路径)
官方图形化安装器仍是 Win10/Win11 下最稳的方式,但它不会“全自动”——尤其当 PHP 不在标准路径(如 C:\php)时,它大概率识别失败,必须手动指定 php.exe。
- 从官网下载最新
Composer-Setup.exe(截至 2026 年 1 月,有效链接仍为 该地址) - 安装时勾选 Install for all users(避免权限冲突),并点击
Browse手动定位到你的php.exe(例如:D:\xampp\php\php.exe或C:\php\php.exe) - 安装器默认将
C:\ProgramData\ComposerSetup\bin加入用户级PATH;如果你常用管理员权限启动 PowerShell/CMD,它可能读不到——此时需手动把该路径加进 系统变量 的Path
验证与排错:为什么 composer --version 还是报错?
安装完成却无法调用,90% 是环境变量未生效或路径错位,不是安装失败。
- 新开一个 CMD/PowerShell(旧窗口不继承新 PATH),运行
echo %PATH%,确认输出中包含C:\ProgramData\ComposerSetup\bin - 运行
where composer,应返回类似C:\ProgramData\ComposerSetup\bin\composer.bat;若返回空或错误路径,说明PATH未写对,或你之前手动建过同名文件干扰了查找 - 运行
php "%ProgramData%\ComposerSetup\bin\composer.phar" --version—— 绕过批处理直接调用 PHAR,可快速判断是 Composer 本身问题,还是 Windows 命令解析问题
安装后必做的两件事:换镜像 + 测试依赖
默认源在国外,首次 composer require 极易卡住或失败;不测试依赖安装,等于没真正跑通流程。
- 全局切换阿里云镜像(提速明显):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 新建测试目录,执行:
cd /d D:\test-project composer init -n composer require monolog/monolog
成功后检查是否生成vendor/和composer.lock;若卡在 “Loading composer repositories”,大概率镜像未生效或网络策略拦截 - 注意:
vendor/目录不应提交到 Git,记得在项目根目录加.gitignore并写入vendor/
php.ini 却没关掉所有 CMD 窗口,或者以为安装器“自动配置”就万事大吉,结果 PATH 只进了用户变量,而你总用管理员模式开终端。










