PHP8.3.36升级修复手册----CVE-2026-109618 CVE-2026-109619
1. 准备工作
- 下载二进制包
到php官网下载对应的php包,我喜欢用bz2的,如果gz或者xz解压缩时改一下包名即可。
https://www.php.net/downloads.php?os=linux&osvariant=linux-redhat&version=8.3&multiversion=Y&source=Y
2. 配置仓库
如果确认使用本地仓库或者之前编译安装过其他版本php则可以跳过这步
# 1. 备份原有源配置sudomkdir-p/etc/yum.repos.d/backupsudomv/etc/yum.repos.d/CentOS-*.repo /etc/yum.repos.d/backup/# 2. 下载阿里云CentOS 7的YUM源配置wget-O/etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo# 3. 建立缓存yum clean all yum makecache- 安装必须的包
如果之前编译安装过其他版本php则可以跳过这步
yuminstall-ygcc gcc-c++makecmake systemd-devel2. 编译安装
- 先将包上传到服务器/opt目录
rz- 编译安装
我习惯于安装到/usr/local/share/ 如果您习惯安装到/usr/local/ 则把这段复制到文本编辑器中删除所有==share/==部分即可
# Stap1 update the pack file# rz# Stap 1.1 environmentDATE=$(date+%Y%m%d)PHP_VERSION=8.3.36NGINX_VERSION=1.28.0# Stap2 Update phpcd/opttarxf php-$PHP_VERSION.tar.bz2cd/opt/php-$PHP_VERSION./configure--prefix=/usr/local/share/php$PHP_VERSION--enable-fpm --with-fpm-user=apache --with-fpm-group=apache --with-fpm-systemd --with-curl --with-iconv --with-mysqli=mysqlnd --enable-mysqlnd --with-pdo-mysql --enable-gd --enable-exif --enable-ftp --enable-mbstring --with-bz2 --with-pdo-sqlite --enable-calendar --enable-sockets --enable-soap --enable-tokenizer --enable-opcache --enable-phar --enable-session --with-gettext --enable-sharedmake-j$(nproc)&&makeinstall\mv /usr/local/share/php{,.$DATE}ln-sf/usr/local/share/php$PHP_VERSION/usr/local/share/php# Stap3 backup php_config\mv /usr/bin/php-config{,.$DATE}\mv /usr/bin/phpize{,.$DATE}ln-sf/usr/local/share/php$PHP_VERSION/bin/php /usr/bin/phpln-sf/usr/local/share/php$PHP_VERSION/bin/phpize /usr/bin/phpize\cp /opt/php-$PHP_VERSION/php.ini-production /usr/local/share/php$PHP_VERSION/php.ini\cp /usr/local/share/php.$DATE/etc/php-fpm.conf /usr/local/share/php/etc/\cp /usr/local/share/php.$DATE/etc/php-fpm.d/*.conf /usr/local/share/php/etc/php-fpm.d/- 确认版本升级完成
[root@php-upgrade opt]# php --versionPHP8.3.36(cli)(built: Oct21202614:27:05)(ZTS)Copyright(c)The PHP Group Zend Engine v4.3.36, Copyright(c)Zend Technologies[root@php-upgrade opt]#3. 重启服务
systemctl stop php-fpm systemctl start php-fpm# 重启nginx或者httpd 这取决于你服务器的状态systemctl restart nginx在最后测试网站是否可以正常打开,如果跨版本可能会有报错。
根据报错内容修改对应配置。
如果有任何错误或者意见,请在回复中告诉我,我将仔细阅读所有回复并及时回复您。