在 Ubuntu 上切换 PHP-FPM 的版本,通常指的是:
系统里同时安装了多个 PHP 版本(如 7.4 / 8.1 / 8.2),需要切换 CLI 或 Web(Nginx/Apache) 使用的 PHP-FPM。
下面按最常见场景一步步说明。
ls /etc/php/
或:
dpkg -l | grep php-fpm
例如:
/etc/php/7.4/fpm
/etc/php/8.1/fpm
/etc/php/8.2/fpm
sudo systemctl stop php7.4-fpm
sudo systemctl start php8.2-fpm
编辑站点配置(如 /etc/nginx/sites-available/default):
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
⚠️ 注意:
php7.4-fpm.sock → php8.2-fpm.socksudo systemctl reload nginx
✅ 完成 Web 端切换
sudo a2disconf php7.4-fpm
sudo a2enconf php8.2-fpm
sudo systemctl restart apache2
sudo update-alternatives --config php
输出示例:
1 /usr/bin/php7.4
* 2 /usr/bin/php8.1
3 /usr/bin/php8.2
输入编号即可切换。
验证:
php -v
sudo update-alternatives --set php /usr/bin/php8.2
✅ 可以
不同版本监听不同 sock / 端口即可:
; /etc/php/8.2/fpm/pool.d/www.conf
listen = /run/php/php8.2-fpm.sock
Nginx 不同站点可分别使用不同 PHP-FPM。
原因:
检查:
ls /run/php/
systemctl status php8.2-fpm
php-fpm8.2 -v
或:
php -v
| 操作 | 命令 |
|---|---|
| 查看已安装 | ls /etc/php/ |
| 启动 | systemctl start phpX.X-fpm |
| 停止 | systemctl stop phpX.X-fpm |
| Nginx 切换 | 改 fastcgi_pass |
| Apache 切换 | a2disconf / a2enconf |
| CLI 切换 | update-alternatives --config php |
如果你愿意,可以告诉我:
我可以给你精确到命令级别的切换方案。