当前位置: 首页 > web >正文

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

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


1.备份现有环境

#备份 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

#停止 PHP-FPM 服务
systemctl stop php-fpm#卸载旧版本 PHP 及其扩展
yum list installed | grep php
yum remove php php-*

3.安装 Remi 仓库

  • 安装 EPEL 和 Remi 源

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

4.安装 PHP 7.4

  • 安装 PHP 7.4 核心及常用扩展

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
  • 其他扩展(按需安装):

    yum install php74-php-curl php74-php-bcmath php74-php-intl php74-php-soap php74-php-json -y
  • 创建软链接(确保命令行使用 PHP 7.4)

 ln -s /usr/bin/php74 /usr/bin/php

5.配置 PHP 7.4

  • 调整 php.ini 配置

  • 备份原配置(如果有):

     cp /etc/opt/remi/php74/php.ini /etc/opt/remi/php74/php.ini.bak
  • 修改配置(如内存限制、上传大小等):

 nano /etc/opt/remi/php74/php.ini

常见修改项:

 memory_limit = 256Mupload_max_filesize = 50Mpost_max_size = 50M
  • 启用 PHP-FPM 服务

     systemctl enable php74-php-fpmsystemctl start php74-php-fpm

6.调整 Web 服务器

  • Nginx 用户

    • 确保 Nginx 配置中指向 PHP 7.4 的 FPM 服务:

      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:

       systemctl restart nginx
  • Apache 用户

    • 安装 libapache2-mod-php74 模块:

       yum install php74-php-cli php74-php-common php74-php-xml php74-php-mbstring
    • 启用模块并重启 Apache:

       a2enmod php74systemctl restart httpd

7.验证安装

  • 检查 PHP 版本

     php -v

    输出应包含 PHP 7.4.x

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

     <?phpphpinfo();?>

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

  • 检查扩展是否加载

     php -m | grep <extension_name>

8.常见问题及解决方案

  • 依赖冲突

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

  • 解决

     yum -y install yum-utilsyum-config-manager --enable remi-php74yum 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 的 预留关键字(如 staticmixed)。

    • 参考 PHP 7.4 迁移指南 修复代码。


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

  • 卸载 PHP 7.4

     yum remove php74-*
  • 恢复备份

     mv /etc/php.ini.bak /etc/php.inimv /etc/php.d.bak /etc/php.d

总结

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

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

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

http://www.xdnf.cn/news/10023.html

相关文章:

  • Android Native 之 adbd进程分析
  • 视频监控汇聚平台EasyCVR安防小知识:如何通过视频融合平台解决信息孤岛问题?
  • @Pushgateway 数据自动清理
  • 碰一碰发视频系统--基于H5场景开发
  • 选择if day5
  • QPS 和 TPS 详解
  • 竞争加剧,美团的战略升维:反内卷、科技与全球化
  • C++ 游戏开发详细流程
  • 大规模JSON反序列化性能优化实战:Jackson vs FastJSON深度对比与定制化改造
  • Elasticsearch 分析器介绍
  • Camera相机人脸识别系列专题分析之六:MTK ISP6S平台人脸识别fdnode流程FdNodeImp.cpp详解
  • Xamarin劝退之踩坑笔记
  • 苹果签名!
  • 数据清理的例子
  • 【仿生机器人】仿生机器人认知-情感系统架构设计报告
  • 【Java工程师面试全攻略】Day4:JVM原理与性能调优深度解析
  • 达梦数据库:同1台服务器如何启动不同版本的DMAP服务
  • 【Docker管理工具】部署Docker管理面板DweebUI
  • 思维革命:DeepSeek-R1-0528 如何用一次小更新颠覆大模型格局
  • 每日算法-250530
  • 企业级安全实践:SSL/TLS 加密与权限管理(二)
  • 支持功能安全ASIL-B的矩阵管理芯片IS32LT3365,助力ADB大灯系统轻松实现功能安全等级
  • Tailwind CSS 实战:基于 Kooboo 构建 AI 对话框页面(五):语音合成输出与交互增强
  • JVM 性能调优
  • Day40打卡 @浙大疏锦行
  • 低功耗架构突破:STM32H750 与 SD NAND (存储芯片)如何延长手环续航至 14 天
  • 使用vscode进行c/c++开发的时候,输出报错乱码、cpp文件本身乱码的问题解决
  • 外包项目交付后还能怎么加固?我用 Ipa Guard 给 iOS IPA 增加了一层保障
  • 数据库暴露--Get型注入攻击
  • C++?多态!!!