温馨提示×

PHP在Ubuntu如何升级

小樊
41
2026-07-28 00:30:14
栏目: 编程语言

在 Ubuntu 上升级 PHP 有多种方式,取决于你当前安装的版本、是否使用第三方源(如 ondrej/php PPA)以及你想升级到哪个版本。下面按最常见、最安全的方式一步步说明。


一、查看当前 PHP 版本

php -v

二、确认 PHP 安装方式(系统自带 or PPA)

1️⃣ 查看软件来源

apt-cache policy php
  • 如果看到 ondrej/php,说明你用的是 PPA
  • 如果是 ubuntu 官方源,一般是系统自带版本(较旧)

三、方式一(✅ 推荐):使用 ondrej/php PPA 升级 PHP

这是 最常用、最安全、最灵活 的方式,适合升级到 PHP 8.x。

1️⃣ 添加 PPA(如果还没加)

sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

2️⃣ 安装新版本 PHP(例如 PHP 8.2)

sudo apt install php8.2 php8.2-cli php8.2-fpm

常用扩展:

sudo apt install php8.2-mysql php8.2-curl php8.2-mbstring \
php8.2-xml php8.2-zip php8.2-gd

3️⃣ 切换 PHP 版本(CLI + Web)

✅ CLI 切换

sudo update-alternatives --config php

选择对应编号即可。


✅ Apache 切换

sudo a2dismod php7.4        # 禁用旧版本
sudo a2enmod php8.2         # 启用新版本
sudo systemctl restart apache2

✅ Nginx(PHP-FPM)

sudo systemctl stop php7.4-fpm
sudo systemctl disable php7.4-fpm

sudo systemctl enable php8.2-fpm
sudo systemctl start php8.2-fpm

然后修改 nginx 配置:

fastcgi_pass unix:/run/php/php8.2-fpm.sock;

重启 nginx:

sudo systemctl restart nginx

四、方式二:仅升级系统自带 PHP(不推荐)

Ubuntu 官方源 不会跨大版本升级 PHP,例如:

  • Ubuntu 20.04:默认 PHP 7.4
  • Ubuntu 22.04:默认 PHP 8.1

只能:

sudo apt update
sudo apt upgrade php

⚠️ 不会从 7.4 升级到 8.x


五、升级前必做 ✅

1️⃣ 备份配置

cp -r /etc/php /etc/php.bak

2️⃣ 检查兼容性

  • PHP 8.x 移除了很多旧特性
  • Laravel / ThinkPHP / WordPress 需确认支持版本

六、常见问题

❓ 升级后网站 502 / 空白页

  • PHP-FPM 没启动
  • Nginx 还在用旧 sock

❓ 扩展缺失

php -m

缺什么装什么:

sudo apt install php8.2-xxx

七、快速总结(推荐流程)

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2 php8.2-fpm
sudo update-alternatives --config php

如果你愿意,可以告诉我:

  • Ubuntu 版本(20.04 / 22.04 / 24.04)
  • Web 服务(Apache / Nginx)
  • 当前 PHP 版本

我可以给你 精确到命令的升级方案

0