记一次homebrew安装的php5.6 执行openssl_decrypt函数502的异常

23-10-26 16:04 字数 649 阅读 3010 已编辑

php5.6是用homebrew安装的,用的包用的是 shivammathur/php/php@5.6

执行下面的代码

openssl_decrypt($encrypted, $this->method, $this->key, $this->options, $this->iv)

原因是这个作者在两个月前的更新里把依赖的openssl版本从1改成了3,在openssl3下执行某些解密方法会抛出502错误。

rb

而在我们执行brew install命令的时候,homebrew 顺带把php5.6也更新了。

所以解决思路是把旧的rb文件找回来,重新安装php5.6。

rb文件路径

/opt/homebrew/Library/Taps/shivammathur/homebrew-php/Formula/php@5.6.rb

怎么找回旧的rb文件(即:安装旧版本),可以通过git log, git reset 恢复回来,我是直接去作者的github上通过作者提交记录找到了依赖openssl1.1的旧版本php5.6的rb文件。

作者的更新

作者的更新

找到旧rb文件后只需要覆盖一下新的rb文件,然后卸载现有的php5.6,之后再重新安装即可。

phpinfo

至此问题已经解决,但是brew每次我安装一个软件自动把其他本地已存在的软件全部更新的设计不是智障吗?网上的说的禁止自动更新的方法是 export HOMEBREW_NO_AUTO_UPDATE=true,但是我试了并没有什么卵用。

1人点赞>
关注 收藏 改进 举报
0 条评论
排序方式 时间 投票
快来抢占一楼吧
请登录后发表评论
站长 @ 十七度
文章
384
粉丝
23
喜欢
195
收藏
31
排名 : 1
访问 : 147.83万
私信