PHP 7.4 在 2022 年 11 月 28 日已经停止了官方的安全支持,所以建议尽快升级到 PHP 8.x 或更高版本(如 PHP 8.0, 8.1 或 8.2),以获得官方的安全更新和性能改进。
要升级 PHP 7.4 到安全版本,通常需要执行以下步骤:
1. 检查当前 PHP 版本
首先,确认你的 PHP 版本是否为 7.4。运行以下命令:
php -v
2. 升级到 PHP 8.0 或更高版本
对于 Debian/Ubuntu 系统:
- 更新包管理器缓存:
sudo apt update
- 添加 PHP 官方仓库:
PHP 8.0 及以上版本可以通过
ondrej/php
仓库进行安装。首先,确保你已安装software-properties-common
:sudo apt install software-properties-common
然后添加
ondrej/php
仓库:sudo add-apt-repository ppa:ondrej/php sudo apt update
- 安装 PHP 8.0(或更高版本):
例如,安装 PHP 8.0:
sudo apt install php8.0 sudo apt install php8.0-cli php8.0-fpm php8.0-mysql php8.0-xml php8.0-mbstring php8.0-curl php8.0-zip php8.0-gd
如果你使用的是 PHP 8.1 或更高版本,只需替换版本号即可。
- 切换默认 PHP 版本:
在安装完 PHP 8.x 后,可以使用
update-alternatives
切换默认版本。sudo update-alternatives --set php /usr/bin/php8.0 sudo update-alternatives --set phpize /usr/bin/phpize8.0 sudo update-alternatives --set php-config /usr/bin/php-config8.0
- 重启服务:
如果你使用的是 PHP-FPM:
sudo systemctl restart php8.0-fpm
对于 Apache:
sudo systemctl restart apache2
- 验证 PHP 版本:
通过运行以下命令确认 PHP 已升级:
php -v
对于 CentOS/RHEL 系统:
- 安装 EPEL 和 Remi 仓库:
sudo yum install -y epel-release sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum install -y yum-utils
- 启用 Remi 仓库并安装 PHP 8.0:
sudo yum module reset php sudo yum module enable php:remi-8.0 sudo yum install php php-cli php-fpm php-mysqlnd php-xml php-mbstring php-curl php-zip php-gd
- 重启 Apache 或 PHP-FPM:
sudo systemctl restart php-fpm sudo systemctl restart httpd
- 验证 PHP 版本:
php -v
3. 检查和兼容性测试
在升级 PHP 后,需要检查网站或应用程序是否与新版本兼容。可以通过以下步骤进行检查:
- 查看错误日志: 如果应用程序存在兼容性问题,可以在 PHP 错误日志中查看详细信息。
- 运行测试: 如果你使用的是测试框架(如 PHPUnit),可以执行单元测试和集成测试来确保应用程序正常运行。
- 更新依赖: 某些 PHP 扩展和依赖可能需要更新以支持新版本的 PHP,记得检查
composer.json
或相关依赖文件。
4. 遇到的问题和解决方案
- 扩展兼容性: 某些 PHP 扩展可能在 PHP 8.x 中发生了变动,特别是在函数或类的命名上。可以通过查看扩展的官方文档来确保正确安装和配置。
- 语法变化: PHP 8 引入了很多新特性,比如属性提升、联合类型、命名参数等。如果应用代码中包含不兼容的新语法或弃用的特性,可能需要修改代码。
总结
升级到 PHP 8.x 不仅能获得更强的安全性,还能提升性能和支持更多现代特性。务必测试所有应用和依赖,确保它们在新版本中运行顺畅。