技术更新迭代很快,巴师兄依稀记得一位国人 – 鸟哥(Laruence,惠新宸)作为核心开发者深度参与了 PHP7 的 Zend 引擎优化,对比PHP5.* 使得PHP 7及后续版本在内存管理和执行效率提升方面实现了质的提升。但是现在,WordPress已经提醒你将PHP8.2.*更新到更高的版本了,已经过去很多年了。看这个水文:为什么WordPress后台提示PHP 8.2.28都已经成了较旧版本 – 外铺控
那么好,我们就来更新PHP8.3.*的版本,首先要知道当前的版本,几个方法都可以,
方法一:WordPress后台,工具-站点健康-信息-服务器,这里会给出PHP版本
方法二:如经常使用SSH连接服务器,这里以xshell为例,输入 php -v,即可查看PHP版本

方法三:把以下php文件丢到网站根目录,比如你的文件名为phpinfo.php,访问地址即为 你的域名/phpinfo.php,即可查看,代码如下
<?php
phpinfo();
?>
方法四:直接进入服务器安装目录, 看到什么数字即php版本
cd /etc/php/
ls
看与不看并不影响升级,😄,能看到这篇文章,说明已经打算要升级了。服务器系统以Debian为例,这里的方法是PHP7.**与PHP8.3*共存,只启用其中一个版本,可切换。进入正题,老规矩,操作之前全量备份网站,以防万一玩崩了但网站最新数据还在,对于新手而言,万事皆有可能发生,站内搜一搜,也可直接去问答模块提问,问答 – 外铺控
1. 查看Debian源PHP版本
apt list -a 'php*'

或搜索可用PHP包,不放截图了。
apt search php | grep ^php
往下拉一拉,找到有无类似 php8.3*开头的,有的话直接跳到3,但大概率没有,继续下一步。
2.添加第三方源头,Sury仓库
apt install -y ca-certificates apt-transport-https software-properties-common
curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
刷新,并显示php8.3
apt update
apt show php8.3

3.没问题的话就安装 php8.3 – 安装PHP 8.3核心组件 与 wordpress必须扩展
apt install -y php8.3-fpm php8.3-common php8.3-mysql \
php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml \
php8.3-zip php8.3-opcache
4. 修改nginx配置文件,通常在/etc/nginx/sites-available/你的站点,具体情况具体分析,如果单独配置了文件,请修改,比如巴师兄的这台服务器的配置文件在nginx目录的conf.d文件夹下。进入php配置,将原来php7.4的注释掉,加入php8.3,如下:
fastcgi_pass unix:/run/php/php8.3-fpm.sock;

保存后退出,然后重启nginx/或者重载设定。
systemctl restart nginx 或者 nginx -t && sudo systemctl reload nginx
nginx配置重载的界面

5.切换PHP-FPM服务
# 停止旧版本 php7.4-fpm
systemctl stop php7.4-fpm
# 启用新版本 php8.3-fpm
systemctl enable --now php8.3-fpm
# 检查状态
systemctl status php8.3-fpm # 如出现active (running),即为正常

6.这个时候可以使用phpinfo查看下各类配置,然后以防疏漏,赶紧进入WordPress后台,站点健康跑一下

果然,继续安装即可
# 安装 imagick 和 intl 扩展
apt install php8.3-imagick php8.3-intl
# 同时安装依赖库
apt install libmagickwand-6.q16-6 libicu72
# 注意,Debian 11安装 apt install libicu67,否则会报错
# 检查扩展是否已加载
php8.3 -m | grep -E 'imagick|intl'
根据系统版本安装正确的 ICU 包
Debian 版本 | 正确的 ICU 包 | 安装命令 |
---|---|---|
Debian 12 (Bookworm) | libicu72 | apt install libicu72 |
Debian 11 (Bullseye) | libicu67 | apt install libicu67 |
Debian 10 (Buster) | libicu63 | apt install libicu63 |
下图即为扩展正确加载

重启下吧,
systemctl restart php8.3-fpm
小提醒:如考虑操作生产环境出现意外报错会影响用户体验,不妨把用户的请求转移到另外一个维护页面(静态)体验更好。