PHP环境未通则Composer无法运行,需先确保php -v可输出版本且≥7.4,php.ini中启用openssl/zlib扩展,再通过Composer-Setup.exe手动指定正确php.exe路径安装,并配置阿里云镜像源。

PHP 环境没跑通,Composer 装了也白装
Composer 本质是个 PHP 脚本,不是独立程序。它启动第一件事就是调用 php.exe,所以你敲 composer --version 报错,90% 不是 Composer 没装好,而是 php 命令根本不存在或版本太低。
- 先打开 CMD 或 PowerShell,运行
php -v—— 必须看到类似PHP 8.2.12的输出,否则停在这里别往下走 - 如果提示
'php' 不是内部或外部命令,说明 PHP 没进系统 PATH:找到你的php.exe(比如C:\xampp\php\php.exe或C:\php\php.exe),把它的**所在目录**(不含php.exe)加进系统环境变量Path - 确认
php.ini中已启用两个关键扩展:extension=openssl和extension=zlib(去掉前面的分号),改完重启终端,再用php -m | findstr openssl验证是否生效 - PHP 版本必须 ≥ 7.4;低于 7.2.5 的版本会直接报
Your PHP version is too old
用 Setup.exe 还是手动放 composer.phar?选前者但要盯住路径
官方 Composer-Setup.exe 是目前最省心的方式,但它“自动探测 PHP 路径”这一步经常翻车——尤其你机器上装了多个 PHP 版本(比如 XAMPP 里的 8.1 + 手动解压的 8.3),它可能默认选错一个没开扩展的版本。
- 从 https://www.php.cn/link/594ca739e3609243a6b6a3dd8d871114 下载最新
Composer-Setup.exe,右键 → “以管理员身份运行”(否则可能写不进C:\ProgramData\ComposerSetup\bin) - 安装时若弹出
PHP executable not found,别点“Next”,点Browse手动选中你确认能用的php.exe(比如C:\php\php.exe) - 勾选
Add to PATH(推荐),并选择Install for all users,避免权限和多用户问题 - 装完立刻关掉所有已打开的终端,新开一个 CMD/PowerShell 再试
composer --version;如果还报“不是内部或外部命令”,手动检查系统环境变量Path是否含C:\ProgramData\ComposerSetup\bin
装完就卡在 “Loading composer repositories”?不是网差,是源没换
这不是 DNS 解析慢,也不是你网络不好,而是 Composer 默认走 packagist.org,这个域名在国内 HTTPS 握手+DNS 查询极不稳定,Windows 上尤其容易卡在 Loading composer repositories 或 Resolving packages… 几分钟不动。
- 执行这条命令切阿里云镜像(2026 年仍稳定可用):
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 注意:如果项目里已有
composer.json且含repositories字段,全局配置会被覆盖,得删掉或改掉项目级配置 - 换源后首次运行仍可能稍慢(要拉取元数据缓存),但后续
install、require就快了 - 验证是否生效:运行
composer diagnose,看输出里Repo packagist.org是否指向阿里云地址
“The openssl extension is required” 却明明开了?检查 php.ini 是不是用错了
常见陷阱:你改了某个 php.ini,但 PHP CLI(命令行)实际加载的是另一个。Windows 下 Apache/Nginx 和 CLI 往往用不同配置文件,改错地方就白忙活。
- 运行
php --ini,看输出的Loaded Configuration File路径,这才是 CLI 真正读的php.ini - 打开那个文件,确认
extension=openssl和extension=zlib前面没有分号,且两行都存在(缺一不可) - 改完保存,重启终端,再用
php -m | findstr openssl确认输出里有openssl,而不是只看到php_openssl.dll文件名 - 某些 PHP 构建(如部分 VC15 编译版)还需把
php/ext目录加进系统PATH,否则扩展 DLL 找不到依赖的libeay32.dll等
真正卡住人的从来不是安装步骤本身,而是 PHP CLI 环境和 Composer 运行时环境之间的那层隐式耦合——它不报错,只沉默卡住;它不拒绝,只随机失效。盯住 php -v 和 php --ini,比反复重装 Composer 有用十倍。


















