1. 备份现有配置与数据
更新前务必备份所有关键数据:使用cp -rp /etc/php.ini /path/to/backup备份PHP配置文件,使用cp -rp /var/www/html /path/to/website_backup备份网站文件,使用mysqldump -u username -p database_name > backup.sql备份数据库。备份是应对更新过程中意外错误(如配置冲突、文件损坏)的核心保障。
2. 检查PHP版本兼容性
通过php -v确认当前PHP版本,使用php --ini查找配置文件路径(如/etc/php.ini)。若从旧版本(如PHP 5.6)升级到新版本(如PHP 8.0),需重点检查:
mysql_query()(需替换为mysqli_query()或PDO)、split()(替换为explode());foreach循环中的list()用法、箭头函数的语法调整;strict_types默认关闭,需显式开启)、错误报告更严格(未定义变量可能引发Notice)。php-compatibility工具(composer require phpcompatibility/php-compatibility)扫描代码库,自动标记不兼容的部分。3. 使用官方/可信仓库更新
避免从非官方源下载PHP包,优先使用CentOS官方的yum/dnf仓库或Remi仓库(提供最新稳定版PHP)。例如,启用Remi仓库并安装PHP 8.0的命令:
sudo yum install epel-release
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php80
sudo yum update php\*
手动编译安装需确保依赖包完整(如gcc、make、libxml2-devel),但易导致后续升级困难,不建议新手使用。
4. 修改配置文件的关键项
更新后需调整php.ini中的核心参数以适应新版本要求:
display_errors = Off(隐藏错误信息,防止泄露敏感数据)、open_basedir = /var/www/html/(限制脚本访问目录)、upload_max_filesize = 50M/post_max_size = 50M(调整上传文件大小限制);memory_limit = 256M(根据应用需求调整内存)、opcache.enable = 1(启用OPcache加速脚本执行)、opcache.memory_consumption = 128(分配128MB缓存);date.timezone = "Asia/Shanghai"(避免时间相关函数报错)。php -i | grep "Loaded Configuration File"确认配置文件路径,避免修改错误文件。5. 重启Web服务器使配置生效
根据使用的Web服务器类型重启对应服务:
sudo systemctl restart httpd;sudo systemctl restart nginx + sudo systemctl restart php-fpm(需同时重启两者,确保配置同步)。systemctl status httpd检查服务状态,避免因服务异常导致网站宕机。6. 测试验证配置正确性
通过创建phpinfo.php文件(echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php)访问http://localhost/phpinfo.php,检查以下内容:
memory_limit、upload_max_filesize)是否生效;mysqli、gd、opcache)是否加载正常(无红色错误提示)。7. 处理兼容性问题
若更新后出现兼容性问题(如函数不存在、语法错误),需针对性解决:
mysql_connect()→mysqli_connect());php-upgrade分支,测试通过后再合并到主分支。