返回

Composer SHA384 验证失败怎么办?终极修复指南

php

修复Composer SHA384 验证失败:终极指南

简介

在更新 Composer 时,你可能遇到过恼人的 "SHA384 is not supported by your openssl extension" 错误。这表示你的 openssl 扩展不支持 SHA384 哈希算法,导致无法验证 Composer phar 文件的完整性。别担心,我们这里有一个全面指南,可以一步步解决这个问题。

原因

此错误通常是由于以下原因引起的:

  • 过时的 openssl 扩展: 如果你使用的是旧版本,可能不支持 SHA384 哈希算法。
  • 损坏或配置错误: 你的 openssl 扩展可能已损坏或未正确配置。

解决方案

1. 更新 openssl 扩展

尝试更新 openssl 扩展以解决问题:

pecl update openssl

2. 安装 SHA384 兼容的 openssl 版本

如果更新扩展不起作用,可以安装与 SHA384 兼容的 openssl 版本:

  • Windows: 下载 OpenSSL 1.1.1 二进制文件并将其解压缩到一个目录中。设置 OPENSSL_ROOT_DIR 环境变量指向安装目录。
  • 其他系统: 使用包管理器安装兼容的 openssl 版本(例如:yum install openssl-devel)。

3. 手动安装 Composer

如果以上方法失败,可以手动安装 Composer:

  • 下载 Composer 安装程序并运行它。
  • 将 Composer 的 bin 目录添加到你的 PATH 环境变量中。

验证解决方案

应用解决方案后,运行以下命令验证问题是否已解决:

composer self-update

如果没有错误,则问题已解决。

其他提示

  • 确保你的 PHP 版本与 openssl 扩展的版本兼容。
  • 如果问题仍然存在,尝试从 GitHub 手动下载 composer.phar 文件。
  • 联系 Composer 团队寻求支持。

结论

现在,你应该能够修复 "SHA384 is not supported by your openssl extension" 错误,并顺利更新 Composer。请注意,具体解决方案可能因你的系统和环境而异。

常见问题解答

  1. 如何检查我的 openssl 扩展版本?
    php -i | grep OpenSSL
    
  2. 如何配置 openssl.cnf 文件?
    修改 /etc/ssl/openssl.cnf 文件,找到以下部分并取消注释:
    [openssl]
    sha384 = yes
    
  3. 为何 openssl 扩展不支持 SHA384?
    旧版本的 openssl 扩展可能没有此功能。
  4. 我可以绕过 SHA384 验证吗?
    不推荐。绕过验证会损害 Composer 的安全性。
  5. 如何防止此错误再次出现?
    定期更新 Composer 和 openssl 扩展以获得最新的安全补丁。