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 uninstall
掉 mcrypt-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 为佳。