PHP 7.4已终止支持,无法修复CVE漏洞,必须升级至PHP 8.3(Security Fixes至2027年11月);升级前需运行composer check-platform-reqs、校验扩展依赖、清理禁用函数配置。

不安全。PHP 7.4 已于 2023年11月28日 正式终止支持(EOL),官方不再发布任何安全补丁,所有已知 CVE(如 CVE-2020-7064、CVE-2021-21707、CVE-2022-31625、CVE-2024-4577)均无法修复——这不是“风险较高”,而是“裸奔状态”。
为什么打补丁没用?
你看到的所谓“PHP 7.4 补丁脚本”或宝塔面板里的“一键修复”,本质是障眼法:
- 禁用
eval或改disable_functions:只是规避部分利用路径,不能修复底层内存越界、ZEND 引擎解析漏洞等根本问题 - 手动 patch 源码再编译:宝塔/Windows/XAMPP 安装的 PHP 均含私有构建参数(如
--with-bt-lib、定制 OpenSSL 路径),官方 7.4 分支早已冻结,patch 无法合入,编译大概率失败或导致php-fpm崩溃 - 依赖系统仓库更新(如 Ubuntu 的
php7.4包):仅限系统自带 PHP;宝塔、XAMPP、源码编译安装的 PHP 不受其管理,apt upgrade对它完全无效
升级到哪个版本才算真正安全?
必须升到仍在官方 Security Fixes 阶段的版本,当前(2026年9月)唯一合理选择是:
-
PHP 8.1:LTS 版本,支持至 2024年11月 → 已过期,**不可选** -
PHP 8.2:Security Fixes 至 2025年11月 → 可用,但已进入维护尾声 -
PHP 8.3:当前最新稳定版,Security Fixes 至 2027年11月 → **推荐首选**(尤其 Win2026 环境下兼容性最稳)
注意:PHP 8.4 尚未发布(截至 2026年9月),别信非官方渠道的“8.4 测试包”。
立即学习“PHP免费学习笔记(深入)”;
升级前最容易被忽略的三件事
很多人升级后网站白屏或报错,不是版本不对,而是卡在这三步:
- 没跑
composer check-platform-reqs:Laravel 10 要求ext-pdo_sqlite >=8.1,ThinkPHP 6.3 需要mbstring和json扩展启用,旧项目可能还依赖已被移除的mysql_*函数 - Windows 下换了 PHP 目录但忘了改 Apache 的
LoadModule php7_module路径,或用了 VC15 编译的 PHP 却配了 VC16 的php7apache2_4.dll,导致httpd.exe -t直接报Cannot load module - 宝塔用户以为切换 PHP 版本就完事,却没进【PHP 设置】→【禁用函数】里清掉旧版残留的
system,exec,passthru—— 新版 PHP 8.3 默认不加载这些函数,但配置文件里还留着,会干扰opcache初始化
真正的安全不是“暂时没被攻破”,而是让攻击面归零。PHP 7.4 的漏洞列表已经封存进历史文档,没人再碰它——你还在用,等于把门钥匙焊死在锁芯上,还指望小偷讲武德。



















