记录本站php由版本8.0.30升级到8.3.7
本文于 99 天前发布,最后更新于 94 天前

一、问题背景

由于WordPress升级到6.8.2版本以来一直提示php版本太旧,建议升级到8.3及更高的版本,本着强迫症的原则,已于今天上午将本站的php升级到版本8.3.7,现记录本文。看完本文如果你有更好更简单的升级方法可以在评论区留言,大家一起探讨。

二、操作步骤

(1)lnmp脚本安装新版php

[root@lemonary lnmp2.2]# ./install.sh mphp

+------------------------------------------------------------------------+
|          LNMP V2.1 for Rocky Linux Server, Written by Licess          |
+------------------------------------------------------------------------+
|        A tool to auto-compile & install LNMP/LNMPA/LAMP on Linux       |
+------------------------------------------------------------------------+
|           For more information please visit https://lnmp.org           |
+------------------------------------------------------------------------+
===========================
You have 9 options for your PHP install.
1: Install PHP 5.2.17
2: Install PHP 5.3.29
3: Install PHP 5.4.45
4: Install PHP 5.5.38
5: Install PHP 5.6.40
6: Install PHP 7.0.33
7: Install PHP 7.1.33
8: Install PHP 7.2.34
9: Install PHP 7.3.33
10: Install PHP 7.4.33
11: Install PHP 8.0.30
12: Install PHP 8.1.28
13: Install PHP 8.2.19
14: Install PHP 8.3.7
Enter your choice (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 or 14): 14

选择14开始安装即可。

安装完成后服务器上同时启动着两个版本的php,此时将两版本php全部停止

systemctl stop php-fpm
pkill php-fpm

两个版本的路径:

旧:/usr/local/php
新:/usr/local/php8.3

(2)保险起见,做下备份

备份 PHP 配置文件
cp /usr/local/php/etc/php.ini /usr/local/php/etc/php.ini.bak
cp /usr/local/php8.3/etc/php.ini /usr/local/php8.3/etc/php.ini.bak.original
备份 PHP-FPM 配置(如果有用到)
cp /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php-fpm.conf.bak
cp /usr/local/php/etc/php-fpm.d/www.conf /usr/local/php/etc/php-fpm.d/www.conf.bak

(3)检查并配置 PHP-FPM

grep -n '^listen' /usr/local/php/etc/php-fpm.conf
grep -n '^listen' /usr/local/php8.3/etc/php-fpm.conf

确保新版本的 listen 设置和旧版本完全一致(例如 listen = /tmp/php-cgi.sock),这样 Nginx 才不需要做任何改动。

(4)替换二进制文件与链接(关键

这是将系统默认 php 和 php-fpm 命令指向新版本的核心步骤。

备份旧版本的 PHP 目录
mv /usr/local/php /usr/local/php_8.0.30_bak

创建新版本的软链接
ln -sf /usr/local/php8.3 /usr/local/php

验证链接和版本
ls -l /usr/local/php
/usr/local/php/bin/php -v

现在,/usr/local/php 这个路径就不再指向旧版本,而是指向了 /usr/local/php8.3。你的所有现有脚本(如 Nginx 配置、开机启动脚本等)如果引用了 /usr/local/php/,现在都会自动使用新版本。

(5)启动新版本的 PHP-FPM 服务

/usr/local/php/sbin/php-fpm
或者
systemctl start php-fpm

(6)验证新服务是否正常运行

ps aux | grep php-fpm
ls -l /tmp/php-cgi.sock # 请替换为你配置中实际的 socket 路径

(7)配置 Nginx 并重启(如果需要)

通常情况下,如果你的 PHP-FPM listen 配置没有改变,Nginx 是无需任何修改的。 但最好检查一下 Nginx 的配置文件,确认 fastcgi_pass 参数指向的 socket 地址是否正确。

注意:
因为我在新版php-fpm.conf中将listen修改成/tmp/php-cgi8.3.sock(原本为/tmp/php-cgi.sock),所以此处Nginx需要修改配置文件如下位置。

修改/usr/local/nginx/conf/enable-php.conf文件中的fastcgi_pass如下:

fastcgi_pass  unix:/tmp/php-cgi8.3.sock;

改成对应php-fpm.conf中配置的listen。

为什么要修改这里呢?因为这个文件在nginx.conf配置文件中通过include引入,如下:

grep "include" /usr/local/nginx/conf/nginx.conf
include enable-php.conf;

检查配置并重启 Nginx:

nginx -t
nginx -s reload

三、其它问题

由于原版的php曾经手动添加过模块exif和Imagick,详见WordPress站点健康之PHP模组Exif和Imagick,所以升级到新版后WordPress还会再次提示缺少这两个模块,而且这次新增一个模块Opcache。这次我们不再手动安装而是直接用lnmp中的脚本进行安装,特别简单。

cd lnmp2.2/
先后执行这两条命令即可
./addons.sh install exif
./addons.sh install imagemagick
./addons.sh install opcache

执行结束后重启php-fpm

systemctl restart php-fpm

查看验证是否安装成功

[root@lemonary ~]# php -m | grep -E 'exif|imagick|OPcache'
exif
imagick
Zend OPcache
Zend OPcache

至此,php版本升级完成。

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇