📑 本文导航
修复 PHP php2shell 漏洞:CVE-2026-109618 / CVE-2026-109619
需升级PHP到PHP v8.3.36,升级步骤如下:
阿里云服务器 默认的操作系统是 Alibaba Cloud Linux 3 (主流,兼容 EL8,用 dnf/yum)。
先确认当前版本 & 安装模式
php -v
# 看包名
rpm -qa | grep php | sort
# 看模块(模块化模式)
dnf module list php
两种形态区分:
- 模块化模式(推荐,包名叫 php、php-fpm):
dnf module list php能看到php:remi-8.3 - SCL 软件集模式(包名带 php83,并行多 PHP):命令是
php83 -v、服务php83-php-fpm
已确认当前测试机器的版本:
模块化 remi-8.3 模式(php:remi-8.3 已启用),包名就是 php-xxx,不是 php83 SCL。 当前版本:8.3.32,目标升级 8.3.36,Alibaba Cloud Linux 3(EL8 兼容)。
配置路径:
/etc/php/8.3/fpm 服务名:php-fpm
下面开始升级:
配置文件位置
- 主 fpm 配置:
/etc/php-fpm.conf - pool 池配置目录:
/etc/php-fpm.d/(里面 www.conf) - 配套 web 配置:
/etc/nginx/conf.d/php-fpm.conf、/etc/httpd/conf.d/php.conf - php.ini 不在 php-fpm 包里,在 php-common,查 php.ini 位置:
rpm -ql php-common | grep php.ini
✅ 现在执行备份(全部关键配置)
# 备份php主配置ini(等下上面命令会告诉你路径,先把fpm相关先备份)
cp /etc/php-fpm.conf /etc/php-fpm.conf.bak.$(date +%Y%m%d_%H%M%S)
cp -r /etc/php-fpm.d /etc/php-fpm.d.bak.$(date +%Y%m%d_%H%M%S)
# 备份nginx的php-fpm配置
cp /etc/nginx/conf.d/php-fpm.conf /etc/nginx/conf.d/php-fpm.conf.bak.$(date +%Y%m%d_%H%M%S)
执行这条拿到 php.ini 真实路径:
rpm -ql php-common | grep php.ini
拿到路径后,再单独备份 php.ini,示例(假设返回
/etc/php.ini):cp /etc/php.ini /etc/php.ini.bak.$(date +%Y%m%d_%H%M%S)
备份完成之后,继续下面步骤
dnf clean all
dnf makecache
预检查仓库是否存在 8.3.36:
dnf --showduplicates list php-cli
升级命令:
dnf update php-cli php-common php-fpm php-gd php-intl php-mbstring php-mysqlnd php-opcache php-pdo php-pecl-zip php-xml gd3php oniguruma5php
升级完成校验:
php -v
systemctl restart php-fpm
systemctl status php-fpm
php -m
升级成功:
# php -v
PHP 8.3.36 (cli) (built: Oct 19 2026 14:00:34) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.36, Copyright (c) Zend Technologies
with Zend OPcache v8.3.36, Copyright (c), by Zend Technologies
