CentOS 7 + OneinStack 环境从 PHP 7.2 升级 7.4

WordPress 后台的站点健康功能推荐 PHP 版本为 7.4,以便最大限度提高性能和安全性。如果仍在运行旧版本,建议升级。

操作前务必备份数据,以便出错后恢复!

通常情况下,PHP 可以在同一个大版本下无缝平滑升级,如果需要跨大版本更新,则需要卸载原有版本后重新安装新版本。在 OneinStack 环境下,7.2 只能升级 7.2.xx ,不能跨大版本更新。当我的 PHP 升级到 7.4后,输入 7.2.xx 时,同样也会提醒错误。

在理想状态下,用 OneinStack 切换 PHP 大版本是很简单的:

# 进入 oneinstack 目录
cd ~/oneinstack

# 卸载当前版本
./uninstall.sh
# 选择卸载 PHP

# 安装新版本
./install.sh
# PHP 选择 y,其余选择 n

如果真能够顺利安装上,那实在是运气极好。在我的实际操作中,有好几次出现报错,导致升级后网站无法打开。所以在此记录踩过的坑,给读者提供一些经验。

PHP 下载失败

由于发文的时候 PHP 最新版本为 7.4.12,所以本文以这个版本做演示。如果以后出现更新版本,只需到 PHP 官网下载对应版本即可。

在一次尝试升级的过程中,我看到部分 PHP 扩展下载缓慢,但至少能够完成下载,但在下载 PHP 时,最后竟然超时了。这就导致服务器上存在一个不完整的 PHP 源码包,而安装脚本并不会检测源码包的完整性,导致后续编译时出现错误而无法完成安装。

~/oneinstack/src 是存储安装包的目录,如果之前出现过下载失败的问题,需要先删除目录下的不完整包,最好删除所有文件,避免遗漏。

# 进入缓存目录
cd ~/oneinstack/src

# 删除所有文件
rm -rf *

# 从 PHP 官网下载
wget https://www.php.net/distributions/php-7.4.12.tar.gz

# 如果速度太慢,可以通过我的备用链接下载
wget https://www.idcbuy.net/wp-content/uploads/2020/11/php-7.4.12.tar.gz

PHP 源码是整个环节中体积最大也是最容易下载失败的资源,如果能够顺利下载的话就已经离成功不远了。

找不到 oniguruma

在编译的过程中,你可能会看到以下错误信息:

checking for oniguruma... no
configure: error: Package requirements (oniguruma) were not met:

No package 'oniguruma' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables ONIG_CFLAGS
and ONIG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
make: *** No targets specified and no makefile found.  Stop.
make: *** No rule to make target `install'.  Stop.
PHP install failed, Please Contact the author!

oniguruma 是一个处理正则表达式的库,PHP 7.4 中,mbstring 的正则表达式处理功能对这个包有依赖性。所以,安装 PHP 7.4 前需要安装 oniguruma 和 oniguruma-devel 两个软件包。

网络小乙 – https://www.jianshu.com/p/cda792d5139f

建议手动下载 RPM 包进行安装:

# 下载 oniguruma5php-6.9.5+rev1-4.el7.remi.x86_64.rpm 
wget https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-6.9.5+rev1-4.el7.remi.x86_64.rpm 

# 下载 oniguruma5php-devel-6.9.5+rev1-4.el7.remi.x86_64.rpm 
wget https://rpms.remirepo.net/enterprise/7/remi/x86_64/oniguruma5php-devel-6.9.5+rev1-4.el7.remi.x86_64.rpm

# 安装
rpm -ivh *.rpm

如果上面的地址已经失效,可以访问 https://centos.pkgs.org/7/remi-x86_64/ ,搜索 oniguruma 找到 oniguruma5php 和 oniguruma5php-devel 的 binary package 链接。

oniguruma 安装完成后再安装 PHP 一般就能够顺利编译了。最后可以看到 WordPress 后台站点健康页面的大勾。

WordPress 站点健康
耕读君
耕读君

一个筋斗十万八千里,说明上云好啊

文章: 197

留下评论

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