温馨提示×

Ubuntu下PHP如何升级

小樊
33
2026-07-13 19:38:29
栏目: 编程语言

在 Ubuntu 下升级 PHP,常见做法有 使用官方 PPA(推荐)系统自带源升级 两种。下面按 最常用、最安全 的方式一步步说明。


一、查看当前 PHP 版本

php -v

二、升级 PHP(推荐方式:Ondřej PPA)

Ubuntu 官方源里的 PHP 版本通常较旧,生产环境或新项目强烈推荐用 Ondřej Sury 的 PPA

1️⃣ 添加 PPA

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

2️⃣ 查看可安装的 PHP 版本

apt-cache search php | grep "^php[0-9]"

例如:

  • php8.1
  • php8.2
  • php8.3 ✅(当前主流)

3️⃣ 安装新版本 PHP(以 8.2 为例)

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

根据你的项目需要选择扩展


三、切换 PHP 版本(CLI + Web)

1️⃣ 切换 CLI 默认 PHP

sudo update-alternatives --config php

选择对应编号即可。

验证:

php -v

2️⃣ 切换 Web(Apache / Nginx)

✅ Apache

sudo a2dismod php8.1
sudo a2enmod php8.2
sudo systemctl restart apache2

查看已启用模块:

apache2ctl -M | grep php

✅ Nginx(PHP-FPM)

sudo systemctl stop php8.1-fpm
sudo systemctl disable php8.1-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(可选)

sudo apt remove php8.1*
sudo apt autoremove

五、Ubuntu 版本与 PHP 对应关系(参考)

Ubuntu 默认 PHP
20.04 7.4
22.04 8.1
24.04 8.3

六、常见问题

❓ 升级后网站报错?

  • 检查扩展是否缺失
  • 查看 phpinfo()php -m
  • 查看 /var/log/php8.2-fpm.log

❓ 多版本共存可以吗?

✅ 可以,通过 update-alternatives 和不同 FPM sock 控制


七、总结(最稳妥流程)

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2 php8.2-fpm
sudo systemctl restart nginx

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

  • ✅ Ubuntu 版本
  • ✅ 使用 Apache 还是 Nginx
  • ✅ 当前 PHP 版本

我可以给你 完全定制化的升级命令

0