PHP 7.4 和 mcrypt

WordPress 在 PHP 7.4 上运行起来的第一时间,就用 apt 命令把 PHP 7.2 的相关包全部移除了,然后集中处理 mcrypt 库的问题。

这个库在 7.1 之后的标准操作应该是使用 pecl 安装,但是如果执行 pecl install 或者 pecl update 的话,它都会报已经安装了最新版本。这当然是因为之前 PHP 7.2 存在的时候确实已经安装了最新的 1.0.3 版本的缘故。可见 pecl 对存在 PHP 7.2 和 7.4 两个版本的情况支持不到位。

见招拆招。先 pecl uninstallmcrypt-1.0.3,然后再 install。这时报一个问题说 phpize 命令未找到。先用 grep 筛了一下 apt list 的结果,里面没有这个关键字。又直接在命令行下执行它,尽管没有,但 shell 提示 php7.2-dev 中有。当然到了这一步,傻子也知道应该装的是 php7.4-dev 了。apt 安装完毕后再执行 pecl 的安装,就马到功成了。

然而刷新站点首页时并没有圆满,报了一堆错,最顶上的异常信息写得分明:Trying to access array offset on value of type bool。说来也巧,昨天在执行 pecl 命令时正好遇到过这个错,有人给出了解决方案,就是在引用数组元素之前先判定数组本身是有效的(判真即可)。打开出错语句,加上判断后保存,再刷新页面就正常了。

不过这个名为 paperwork 的系统年久失修,功能其实还凑合,但是性能实在太低,还是趁着老夫自己聚焦维护 mindoc 的时机,切换到 mindoc 为佳。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注