跳转到主要内容

在centos 7/ubuntu中把php7.3升级到php7.4

当php最新稳定版本发布的时候,只要我的Drupal或者Wordpress支持,通常都是尽快升级的。相对于ubuntu系统,这个升级会比较简单一点,下面记录一下升级过程。

Centos升级到php7.4+

在管理员或者sudo权限下执行更新

yum update -y

更新前做好备份工作,这里由于没有发现centos直接升级的操作,需要卸载旧版,所以注意备份/etc/php-fpm.d/www.conf这个文件,这个文件配置了php-fpm监听方式和所有者,部分内容如下:

listen = /dev/shm/php7.4-fpm.sock

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

如果更新后fpm正常运行,服务器跑不起来,多半是这个地方配置被覆盖导致。

查看并记录当前已经安装的modules:

php -m

查看当前php相关的包

rpm -qa | grep php

移除目标相关php包

yum remove "php*" -y

如果没有安装remi库则需先安装

yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm

完成以上操作就可以开始安装了,模块比较多,也可以单独安装:

yum --disablerepo=remi-php73 --enablerepo=remi-php74 install php php-pdo php-fpm php-gd php-opcache php-common php-cli php-mbstring php-curl php-embedded php-mcrypt php-xmlrpc php-mysql php-mysqlnd php-pecl-mcrypt php-xml php-json -y

完成以后,需要注意检查新的www.conf文件中的监听方式和所有者,确保和备份中的内容一致,注意php-fpm.sock这个路径文件是在php-fpm配置sock监听模式且服务重启之后生成的,能使用sock方式就不要使用端口方式来监听。最后一步操作就是检查nginx的conf.d中的网站配置文件中的sock文件是否和生成的路径和名称一致。

Ubuntu 升级到php7.4+

ubuntu升级这个操作就简单多了,直接上命令:

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt upgrade php
然后安装扩展:
sudo apt-get install php7.4-{common,curl,xsl,iconv,bcmath,bz2,intl,gd,mbstring,mysqlnd,zip,fpm,cli,soap,redis} -y

如有必要,可以手动删除旧版模块
sudo apt remove php7.3-*

到这里,升级完成,直接检查一下nginx的网站配置文件中的sock文件是否和生成的路径和名称一致。

重启一下php-fpm服务,完成。

sudo systemctl restart php-fpm

 

分类