LNMP环境中php7.2升级到php7.4

以下是 CentOS 7 上从 PHP 7.2 升级到 PHP 7.4 的详细步骤,结合知识库中的方法和注意事项:


1.备份现有环境

bash 复制代码
#备份 PHP 配置文件
cp /etc/php.ini /etc/php.ini.bak
cp -r /etc/php.d /etc/php.d.bak

#备份网站文件和数据库
tar -czvf website_backup.tar.gz /var/www/html
mysqldump -u root -p database_name > database_backup.sql

2.卸载旧版本 PHP

bash 复制代码
#停止 PHP-FPM 服务
systemctl stop php-fpm

#卸载旧版本 PHP 及其扩展
yum list installed | grep php
yum remove php php-*

3.安装 Remi 仓库

安装 EPEL 和 Remi 源

bash 复制代码
yum install epel-release -y
rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-7.rpm

4.安装 PHP 7.4

安装 PHP 7.4 核心及常用扩展

bash 复制代码
yum install php74-php php74-php-cli php74-php-fpm php74-php-mysqlnd php74-php-mbstring php74-php-xml php74-php-gd php74-php-opcache -y

其他扩展(按需安装):

bash 复制代码
yum install php74-php-curl php74-php-bcmath php74-php-intl php74-php-soap php74-php-json -y

创建软链接(确保命令行使用 PHP 7.4)

bash 复制代码
 ln -s /usr/bin/php74 /usr/bin/php

5.配置 PHP 7.4

调整 php.ini 配置

备份原配置(如果有):

bash 复制代码
 cp /etc/opt/remi/php74/php.ini /etc/opt/remi/php74/php.ini.bak

修改配置(如内存限制、上传大小等):

bash 复制代码
 nano /etc/opt/remi/php74/php.ini

常见修改项:

bash 复制代码
 memory_limit = 256M
 upload_max_filesize = 50M
 post_max_size = 50M

启用 PHP-FPM 服务

bash 复制代码
 systemctl enable php74-php-fpm
 systemctl start php74-php-fpm

6.调整 Web 服务器

Nginx 用户

复制代码
#### 确保 Nginx 配置中指向 PHP 7.4 的 FPM 服务:

```bash
location ~ \.php$ {
     include fastcgi_params;
     fastcgi_pass unix:/var/opt/remi/php74/run/php-fpm/www.sock;
     fastcgi_index index.php;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 }
```
复制代码
#### 重启 Nginx:

```bash
 systemctl restart nginx
```

Apache 用户

复制代码
#### 安装 `libapache2-mod-php74` 模块:

```bash
 yum install php74-php-cli php74-php-common php74-php-xml php74-php-mbstring
```
复制代码
#### 启用模块并重启 Apache:

```bash
 a2enmod php74
 systemctl restart httpd
```

7.验证安装

检查 PHP 版本

bash 复制代码
 php -v

输出应包含 PHP 7.4.x
*

通过 Web 验证 创建 /var/www/html/info.php 文件:

bash 复制代码
 <?php
 phpinfo();
 ?>

访问 http://your-server-ip/info.php,确认显示 PHP 7.4。
*

检查扩展是否加载

bash 复制代码
 php -m | grep <extension_name>

8.常见问题及解决方案

依赖冲突

  • 问题yum 安装时提示依赖失败。

  • 解决

    bash 复制代码
     yum -y install yum-utils
     yum-config-manager --enable remi-php74
     yum install php74-php-<package>

PHP-FPM 无法启动

  • 问题systemctl start php74-php-fpm 报错。

  • 解决

    • 检查 /var/opt/remi/php74/log/php-fpm/error.log 中的日志。

    • 确保 php.iniwww.conf 配置正确。

旧代码兼容性问题


回滚方案(如果升级失败)

卸载 PHP 7.4

bash 复制代码
 yum remove php74-*

恢复备份

bash 复制代码
 mv /etc/php.ini.bak /etc/php.ini
 mv /etc/php.d.bak /etc/php.d

总结

  • 推荐使用 Remi 仓库:这是 CentOS 7 上安装 PHP 7.4 的最稳定方式。

  • 注意扩展兼容性 :确保所有扩展(如 php-mysqlndphp-opcache)都升级到兼容版本。

  • 测试后再上线:在测试环境中验证应用兼容性,避免生产环境直接升级。

相关推荐
FoldWinCard42 分钟前
D5 Linux 网络及端口命令
linux·运维·服务器
零涂毕业设计2 小时前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled
tedcloud1232 小时前
OmniRoute怎么部署?开源AI模型路由平台Linux部署教程
linux·服务器·人工智能·开源·音视频
霸道流氓气质2 小时前
KMS 密钥管理服务(Key Management Service)原理与实践
linux·服务器·数据库
SakitamaX2 小时前
LVS(Linux Virtual Server)概念详解
linux·运维·lvs
小张同学a.3 小时前
Linux系统管理
linux·运维
阿龙的工作记录3 小时前
深入理解Linux设备驱动模型
linux·嵌入式硬件·工作记录
代码村新手3 小时前
Linux的基本指令
linux·运维·服务器
AAA@峥5 小时前
CentOS7 源码编译安装 MySQL5.7|SQL 基础操作 + 备份恢复完整实战
运维·数据库·sql·centos
撩得Android一次心动5 小时前
Linux编程笔记3【个人用】
linux·笔记