SYS-BLOG运行在WordPress上,想安装Popular Posts插件时提示PHP版本不满足需求。在这里介绍将PHP版本从PHP7升级到PHP8的内容。
SYS-BLOG的运行环境如下,这次将PHP版本从7.0.33升级至8.0.23。运行WordPress所需的软件,全部yum进行安装,因此进行编译安装环境的不能使用在这里介绍的方法。
- 服务器:阿里云ECS
- OS:CentOS7.7
- Web:Nginx 1.16.1
- PHP:7.0.33
- DB:MariaDB 10.4.12
系统备份
PHP升级过程中可能会出现错误导致系统无法正常使用,因此使用阿里云提供的快照功能进行备份。
修改yum repository
使用 yum update命令升级PHP的版本,因此在这里使用 yum-config-manager 命令修改yum repository。
使用 yum repolist 命令确认当前的repository,可确认到当前的使用的为remi-php70。
# yum repolist
~省略~
Loading mirror speeds from cached hostfile
* remi-php70: mirrors.tuna.tsinghua.edu.cn
* remi-safe: mirrors.tuna.tsinghua.edu.cn
repo id repo name status
base/7/x86_64 CentOS-7 10,072
docker-ce-edge/x86_64 Docker CE Edge - x86_64 87
docker-ce-stable/x86_64 Docker CE Stable - x86_64 169
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,756
extras/7/x86_64 CentOS-7 516
mariadb-main/7/x86_64 MariaDB Server 102
mariadb-maxscale/7/x86_64 MariaDB MaxScale 4
mariadb-tools/7/x86_64 MariaDB Tools 16
remi-php70 Remi's PHP 7.0 RPM repository for Enterprise Linux 7 - x86_64 456
remi-safe Safe Remi's RPM repository for Enterprise Linux 7 - x86_64 4,954
updates/7/x86_64 CentOS-7 4,156
repolist: 34,288
接下来安装remi-release repository(如果已安装该步骤可跳过)后,安装yum-utils包。
# yum install remi-release
# yum install yum-utils -y
无效所有的php repository后,激活remi-php80 repository。
# yum-config-manager --disable 'remi-php*'
# yum-config-manager --enable remi-php80
确认remi-php80 repository已被激活。
# yum repolist
~省略~
Loading mirror speeds from cached hostfile
* remi-php80: mirrors.tuna.tsinghua.edu.cn
* remi-safe: mirrors.tuna.tsinghua.edu.cn
remi-php80 | 3.0 kB 00:00:00
remi-php80/primary_db | 218 kB 00:00:00
repo id repo name status
base/7/x86_64 CentOS-7 10,072
docker-ce-edge/x86_64 Docker CE Edge - x86_64 87
docker-ce-stable/x86_64 Docker CE Stable - x86_64 169
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,756
extras/7/x86_64 CentOS-7 516
mariadb-main/7/x86_64 MariaDB Server 102
mariadb-maxscale/7/x86_64 MariaDB MaxScale 4
mariadb-tools/7/x86_64 MariaDB Tools 16
remi-php80 Remi's PHP 8.0 RPM repository for Enterprise Linux 7 - x86_64 385
remi-safe Safe Remi's RPM repository for Enterprise Linux 7 - x86_64 4,954
updates/7/x86_64 CentOS-7 4,156
repolist: 34,217
修改yum repository之后,使用 yum update 命令更新到最新Package。
# yum update -y
升级PHP版本
开始升级PHP版本之前,停止Nginx服务。
# systemctl stop nginx
如下yum update 命令指定remi和remi-php80 repository后进行升级。
# yum update --enablerepo=remi,remi-php80 php php-pdo php-mbstring php-common php-cli php-mysql
~省略~
Dependencies Resolved
=======================================================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================================================
Installing:
gd3php x86_64 2.3.3-7.el7.remi remi 138 k
replacing gd-last.x86_64 2.3.0-1.el7.remi
php-common x86_64 8.0.23-1.el7.remi remi-php80 1.2 M
replacing php-json.x86_64 7.0.33-19.el7.remi
php-pecl-mcrypt x86_64 1.0.5-1.el7.remi.8.0 remi-php80 30 k
replacing php-mcrypt.x86_64 7.0.33-19.el7.remi
Updating:
php x86_64 8.0.23-1.el7.remi remi-php80 1.8 M
php-cli x86_64 8.0.23-1.el7.remi remi-php80 5.3 M
php-mbstring x86_64 8.0.23-1.el7.remi remi-php80 521 k
php-mysqlnd x86_64 8.0.23-1.el7.remi remi-php80 258 k
php-pdo x86_64 8.0.23-1.el7.remi remi-php80 151 k
Installing for dependencies:
libsodium x86_64 1.0.18-1.el7.remi remi 148 k
libzstd x86_64 1.5.2-1.el7 epel 282 k
oniguruma5php x86_64 6.9.8-1.el7.remi remi 207 k
php-sodium x86_64 8.0.23-1.el7.remi remi-php80 92 k
Updating for dependencies:
libzip5 x86_64 1.9.2-3.el7.remi remi 65 k
php-fpm x86_64 8.0.23-1.el7.remi remi-php80 1.8 M
php-gd x86_64 8.0.23-1.el7.remi remi-php80 99 k
php-ldap x86_64 8.0.23-1.el7.remi remi-php80 94 k
php-opcache x86_64 8.0.23-1.el7.remi remi-php80 765 k
php-pecl-zip x86_64 1.21.0-3.el7.remi.8.0 remi-php80 68 k
php-xml x86_64 8.0.23-1.el7.remi remi-php80 232 k
Transaction Summary
=======================================================================================================================================================
Install 3 Packages (+4 Dependent packages)
Upgrade 5 Packages (+7 Dependent packages)
确认即将安装PHP版本是否正确,如果没问题的话,输入「y」。
Total download size: 13 M
Is this ok [y/d/N]:y
~省略~
Installed:
gd3php.x86_64 0:2.3.3-7.el7.remi php-common.x86_64 0:8.0.23-1.el7.remi php-pecl-mcrypt.x86_64 0:1.0.5-1.el7.remi.8.0
Dependency Installed:
libsodium.x86_64 0:1.0.18-1.el7.remi libzstd.x86_64 0:1.5.2-1.el7 oniguruma5php.x86_64 0:6.9.8-1.el7.remi php-sodium.x86_64 0:8.0.23-1.el7.remi
Updated:
php.x86_64 0:8.0.23-1.el7.remi php-cli.x86_64 0:8.0.23-1.el7.remi php-mbstring.x86_64 0:8.0.23-1.el7.remi php-mysqlnd.x86_64 0:8.0.23-1.el7.remi
php-pdo.x86_64 0:8.0.23-1.el7.remi
Dependency Updated:
libzip5.x86_64 0:1.9.2-3.el7.remi php-fpm.x86_64 0:8.0.23-1.el7.remi php-gd.x86_64 0:8.0.23-1.el7.remi
php-ldap.x86_64 0:8.0.23-1.el7.remi php-opcache.x86_64 0:8.0.23-1.el7.remi php-pecl-zip.x86_64 0:1.21.0-3.el7.remi.8.0
php-xml.x86_64 0:8.0.23-1.el7.remi
Replaced:
gd-last.x86_64 0:2.3.0-1.el7.remi php-json.x86_64 0:7.0.33-19.el7.remi php-mcrypt.x86_64 0:7.0.33-19.el7.remi
Complete!
最后显示「Complete!」,表示PHP版本升级成功。
确认升级后的PHP版本
使用 php -v 命令确认当前的PHP版本。
# php -v
执行后的显示结果如下,可确认到当前的版本为 8.0.23。
PHP 8.0.23 (cli) (built: Aug 30 2022 12:16:34) ( NTS gcc x86_64 )
Copyright (c) The PHP Group
Zend Engine v4.0.23, Copyright (c) Zend Technologies
with Zend OPcache v8.0.23, Copyright (c), by Zend Technologies
动作确认
升级完PHP版本之后,systemctl命令启动nginx访问网站是否能够正常访问。
# systemctl start nginx
并且需要确认已安装的WordPress插件是否正常运行,因为WordPress插件的运行也依赖于PHP版本。
小结
因为需要安装Popular Posts插件升级了WordPress环境的PHP版本,而PHP8的性能表现也是强于PHP7。最重要的是yum升级PHP的版本,虽然有一定的风险但操作相对简单。