先将php.exe所在目录(如c:\xampp\php)添加到系统path环境变量,重启命令行后验证php --version;再手动下载composer.phar并配composer.bat,或用阿里云镜像源替换packagist.org以解决加载慢问题。

怎么在 Windows 上装 Composer 而不卡在 php.exe 找不到?
根本原因不是 Composer 本身难装,而是它依赖系统能调用 php.exe——很多人装了 XAMPP、WAMP 或单独 PHP,但没把 php.exe 所在目录加进系统 PATH。结果双击安装器直接报错“PHP is not recognized as an internal or external command”。
- 先打开命令行,运行
php --version,如果提示“不是内部或外部命令”,说明 PHP 没进PATH - 找到你的
php.exe,比如C:\xampp\php或C:\php,右键“此电脑”→“属性”→“高级系统设置”→“环境变量”,在“系统变量”里双击Path,新增一行,粘贴完整路径(不含php.exe,只到目录) - 重启所有已打开的命令行窗口(旧窗口不会自动读新
PATH) - 再试
php --version,有输出才继续下一步
该用官方安装器还是手动下载 composer.phar?
官方 Composer-Setup.exe 看似省事,但实际更易出问题:它会尝试自动探测 PHP 路径,有时选错版本(比如同时装了 PHP 7.4 和 8.2),或者写死注册表路径导致后续升级失败。手动方式反而稳定可控。
- 去 https://www.php.cn/link/594ca739e3609243a6b6a3dd8d871114 下载最新
composer.phar - 把它放进一个固定目录,比如
C:\bin\composer.phar(C:\bin需提前加入PATH) - 新建一个
composer.bat文件,内容只有一行:@php "%~dp0composer.phar" %*,和composer.phar放一起 - 这样命令行就能直接敲
composer --version,本质是用php.exe运行那个.phar文件
为什么 composer install 总卡在 “Loading composer repositories”?
这不是网络抽风,而是默认源 packagist.org 在国内访问不稳定,且 Composer 会尝试走 HTTPS + DNS 解析 + TLS 握手三重验证,Windows 上尤其容易超时。
- 执行
composer config -g repo.packagist composer https://packagist.phpcomposer.com(注意:这个镜像已停用,改用https://packagist.laravel-china.com或https://mirrors.aliyun.com/composer/) - 更稳妥的做法是全局换源:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ - 如果项目里已有
composer.json并含repositories字段,优先级高于全局配置,得手动删掉或改掉 - 换源后首次运行仍可能慢(要缓存元数据),但后续就快了
遇到 “The openssl extension is required” 却明明开了 extension=openssl?
Windows 下 PHP 的 ext 目录和 openssl.dll 依赖的 libeay32.dll、ssleay32.dll 必须在同一层级,而很多一键包(如早期 XAMPP)漏放这两个 DLL,或者放在了 syswow64 里但 PHP 是 64 位进程,找不到。
- 检查
php.ini中extension_dir指向的目录下是否有php_openssl.dll - 进入该目录,看是否存在
libeay32.dll和ssleay32.dll;没有就从 PHP 官网 ZIP 包同目录复制过来 - 运行
php --ri openssl,如果返回扩展信息,说明加载成功;如果报错或无输出,说明没真正启用 - 别信 phpinfo() 页面显示“enabled”——那是模块注册了,不等于能用;
composer需要的是可调用的 OpenSSL 功能
最常被忽略的点:Composer 全局配置生效范围、php.ini 实际加载路径、以及不同终端(CMD/PowerShell/Git Bash)可能读取不同的环境变量。跑之前先确认 where php 和 php --ini 输出是否一致。










