下面给你一份在 Ubuntu 上升级 PHP-FPM 的完整指南,适用于常见场景(系统自带源、第三方 PPA、多版本共存等)。
php -v
php-fpm -v
查看已安装版本:
dpkg -l | grep php
sudo apt update
sudo apt upgrade -y
sudo apt install --only-upgrade php-fpm
⚠️ 注意:Ubuntu 官方仓库通常只提供一个 PHP 版本,升级幅度有限。
这是 Ubuntu 上升级 PHP 的标准做法,支持 PHP 7.4 / 8.1 / 8.2 / 8.3 等。
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2-fpm
常用扩展:
sudo apt install php8.2-mysql php8.2-curl php8.2-mbstring php8.2-xml php8.2-zip
查看 sock 路径:
ls /run/php/
修改 nginx 配置:
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
重载 Nginx:
sudo systemctl reload nginx
禁用旧版本:
sudo a2disconf php7.4-fpm
启用新版本:
sudo a2enconf php8.2-fpm
sudo systemctl reload apache2
sudo systemctl stop php7.4-fpm
sudo systemctl disable php7.4-fpm
systemctl status php8.2-fpm
对比:
diff /etc/php/7.4/fpm/php.ini /etc/php/8.2/fpm/php.ini
常见错误:
open_basedirdisable_functions你可以同时运行多个 PHP-FPM 版本:
sudo apt install php7.4-fpm php8.2-fpm
通过 Nginx 指定不同站点使用不同 PHP:
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
| 项目 | 说明 |
|---|---|
| 旧语法 | ereg、each() 已移除 |
| 扩展 | 部分 PECL 扩展不支持 |
| WordPress | 建议 ≥ PHP 8.1 |
建议先在测试环境验证!
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2-fpm
sudo systemctl stop php7.4-fpm
sudo systemctl reload nginx
如果你愿意,可以告诉我:
我可以给你精确的一步到位命令。