PHP8.2.16报错Severity: error --> Exception: Call to undefined function openssl_pkey_get_private()

问题

  1. PHP版本由8.1.20升级到8.2.16,运行项目时报错 Severity: error --> Exception: Call to undefined function openssl_pkey_get_private()
  2. 检查了PHP8.2.16扩展含有php_openssl.dll,并且php.ini中配置了extension=php_openssl.dll,还是会报错
  3. 复制php安装目录中的 libeay32.dll、ssleay32.dll、php8ts.dll,以及扩展目录的php_openssl.dll 至 c:\windows\system32,重启apache,还是会报错(这里得说明一下,从官网下载的PHP8.2.16,安装目录没有libeay32.dll、ssleay32.dll,是在其他版本复制过来的)

原因

在这篇文档中找到了答案 win环境php7.2无法加载curl,openssl的问题解决方法 

低版本的PHP安装目录中的libeay32.dll、ssleay32.dll,在高版本中变为了libcrypto-1_1-x64.dll、libssl-1_1-x64.dll

而在PHP8.2.16中,则是变为了libcrypto-3-x64.dll、libssl-3-x64.dll。因此大家要根据PHP安装目录实际情况解决问题

解决方案

把PHP8.2.16安装目录下的 libcrypto-3-x64.dll 和 libssl-3-x64.dll 复制到apache的bin目录中(我机器上的目录是 ..\apache\apache2.4.41\bin,具体位置请根据实际情况而定),重启apache服务器即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值