上一篇
"王工,咱们那个老订单系统又报错了!客户说页面显示不正常..."一大早运维小张就急匆匆跑来,我叹了口气,这已经是本周第三次了,那套运行在CentOS 6上的老系统,用的还是PHP 5.4,各种兼容性问题频发,是时候给它动个"手术"了——把PHP从5.4升级到5.5版本。
先别急着敲命令,这种老系统升级得像医生做手术一样谨慎,我习惯先做三件事:
php -v cat /etc/centos-release
果然显示着:
PHP 5.4.45 (cli)
CentOS release 6.10 (Final)
备份重要数据:
tar -zcvf /backup/php54_backup_$(date +%Y%m%d).tar.gz /etc/php* /var/www/html
记录现有模块(升级后要重新安装):
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,最好先手动卸载,避免冲突。
启用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有些配置变化需要关注:
检查/etc/php.ini
中的时区设置:
date.timezone = Asia/Shanghai
如果使用OPcache(PHP 5.5开始内置):
zend_extension=opcache.so opcache.enable=1 opcache.memory_consumption=128
基础功能测试:
php -m # 检查模块是否齐全 php -i | grep "Configuration" # 查看编译配置
Web服务重启:
service httpd restart # 或nginx+php-fpm组合 service php-fpm restart service nginx restart
应用验证:
tail -f /var/log/httpd/error_log # 或 tail -f /var/log/php-fpm/error.log
坑1:升级后网站白屏
/var/log/httpd/error_log
,可能是某个扩展未加载php.ini
中display_errors = On
定位问题坑2:MySQL连接失败
坑3:性能下降
/etc/php.ini
中的memory_limit
设置虽然PHP 5.5比5.4稳定不少,但毕竟也是老旧版本了,建议后续:
本文由 程碧巧 于2025-08-02发表在【云服务器提供商】,文中图片由(程碧巧)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/519654.html
发表评论