当前位置:首页 > 问答 > 正文

PHP升级 CentOS运维 在CentOS系统中实现PHP从5.4到5.5的版本升级方法

CentOS下PHP从5.4升级到5.5实战手记

"王工,咱们那个老订单系统又报错了!客户说页面显示不正常..."一大早运维小张就急匆匆跑来,我叹了口气,这已经是本周第三次了,那套运行在CentOS 6上的老系统,用的还是PHP 5.4,各种兼容性问题频发,是时候给它动个"手术"了——把PHP从5.4升级到5.5版本。

升级前的准备工作

先别急着敲命令,这种老系统升级得像医生做手术一样谨慎,我习惯先做三件事:

  1. 检查当前环境
    php -v
    cat /etc/centos-release

果然显示着:

PHP 5.4.45 (cli)
CentOS release 6.10 (Final)
  1. 备份重要数据

    tar -zcvf /backup/php54_backup_$(date +%Y%m%d).tar.gz /etc/php* /var/www/html
  2. 记录现有模块(升级后要重新安装):

    php -m > ~/php_modules_list.txt

正式升级步骤

第一步:清理旧版本

CentOS 6默认的yum源里只有PHP 5.3,得先添加EPEL和Remi源:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-6.rpm

重要提示:如果之前通过非yum方式安装过PHP,最好先手动卸载,避免冲突。

PHP升级 CentOS运维 在CentOS系统中实现PHP从5.4到5.5的版本升级方法

第二步:安装PHP 5.5

启用Remi仓库并安装:

yum --enablerepo=remi-php55 install php

安装完成后验证版本:

php -v

应该能看到类似输出:

PHP 5.5.38 (cli)

第三步:安装常用扩展

根据之前记录的模块列表,安装必要扩展(示例):

yum --enablerepo=remi-php55 install php-mysql php-gd php-mbstring php-xml

特别注意:像memcache这类第三方扩展可能需要重新编译安装。

第四步:配置调整

PHP 5.5相比5.4有些配置变化需要关注:

PHP升级 CentOS运维 在CentOS系统中实现PHP从5.4到5.5的版本升级方法

  1. 检查/etc/php.ini中的时区设置:

    date.timezone = Asia/Shanghai
  2. 如果使用OPcache(PHP 5.5开始内置):

    zend_extension=opcache.so
    opcache.enable=1
    opcache.memory_consumption=128

升级后检查清单

  1. 基础功能测试

    php -m  # 检查模块是否齐全
    php -i | grep "Configuration"  # 查看编译配置
  2. Web服务重启

    service httpd restart
    # 或nginx+php-fpm组合
    service php-fpm restart
    service nginx restart
  3. 应用验证

  • 访问关键业务页面
  • 检查错误日志:
    tail -f /var/log/httpd/error_log
    # 或
    tail -f /var/log/php-fpm/error.log

常见问题排坑指南

坑1:升级后网站白屏

PHP升级 CentOS运维 在CentOS系统中实现PHP从5.4到5.5的版本升级方法

  • 检查/var/log/httpd/error_log,可能是某个扩展未加载
  • 临时修改php.inidisplay_errors = On定位问题

坑2:MySQL连接失败

  • 确认php-mysql已安装
  • 检查代码中mysql_*函数(PHP 5.5开始废弃,建议改用mysqli或PDO)

坑3:性能下降

  • 调整OPcache参数
  • 检查/etc/php.ini中的memory_limit设置

升级后的建议

虽然PHP 5.5比5.4稳定不少,但毕竟也是老旧版本了,建议后续:

  1. 制定计划逐步升级到PHP 7.x(需要CentOS 7+支持)
  2. 将关键业务代码中的废弃函数逐步替换
  3. 考虑搭建测试环境,验证PHP 5.6的兼容性

发表评论