首先确保PHP环境已启用OpenSSL扩展,编辑php.ini文件去掉extension=openssl前的分号;其次通过php -m和php --ini确认扩展加载及配置文件路径正确;Windows用户需检查ext目录下php_openssl.dll是否存在并确保系统PATH包含必要DLL库;最后避免使用HTTP源以防安全风险。

当你在使用 Composer 安装或更新 PHP 项目依赖时,遇到 "openssl extension required" 报错,说明当前 PHP 环境缺少 OpenSSL 扩展。这个扩展是 Composer 下载 HTTPS 资源(如从 packagist.org 获取包)所必需的。以下是解决该问题的几种有效方法。
检查并启用 OpenSSL 扩展
大多数情况下,OpenSSL 扩展已经随 PHP 一起安装,但可能未启用。
- 找到你的 php.ini 文件。可通过命令
php --ini查看加载的配置文件路径。 - 打开 php.ini,搜索
;extension=openssl或;extension=php_openssl.dll(Windows)。 - 去掉前面的分号 ;,启用该扩展:
extension=openssl
确认 PHP 版本与环境匹配
如果你在 Windows 上使用多个 PHP 版本(例如 WAMP、XAMPP 或手动配置),需确保 Composer 使用的是已启用 OpenSSL 的 PHP 版本。
- 运行
php -m查看已加载的模块,确认输出中包含 openssl。 - 如果未列出,说明当前 CLI 使用的 PHP 配置未启用扩展。
- 可运行
php --ini确认加载的是正确的 php.ini,必要时修改系统环境变量 PATH,指向正确的 PHP 安装目录。
Windows 用户常见问题处理
在某些 Windows 环境中,即使启用了 openssl 扩展,仍可能报错,原因可能是缺少 DLL 文件或配置不完整。
- 确保
php_openssl.dll存在于 PHP 安装目录的ext/文件夹中。 - 确认系统 PATH 中包含 OpenSSL 的运行库(如 libeay32.dll 和 ssleay32.dll),或将其复制到系统目录或 PHP 根目录。
- 部分旧版 PHP 需在 php.ini 中额外启用:
extension=php_curl.dll extension=php_mbstring.dll因为 Composer 依赖这些组件协同工作。
临时绕过 HTTPS(不推荐生产环境使用)
若仅为测试且网络环境可信,可临时将 Composer 源切换为 HTTP,避免调用 OpenSSL。
- 执行:
composer config -g repo.packagist composer http://packagist.org
composer config -g repo.packagist composer https://packagist.org
基本上就这些。只要确保 PHP 启用了 OpenSSL 扩展,并且运行环境能正确加载相关库文件,Composer 就不会再报 "openssl extension required" 错误。问题通常出在配置遗漏或多版本混淆,仔细检查 php.ini 和 CLI 使用的 PHP 实例即可解决。










