温馨提示×

php-fpm在ubuntu如何切换

小樊
42
2026-08-12 09:35:08
栏目: 编程语言

在 Ubuntu 上切换 PHP-FPM 的版本,通常指的是:

系统里同时安装了多个 PHP 版本(如 7.4 / 8.1 / 8.2),需要切换 CLIWeb(Nginx/Apache) 使用的 PHP-FPM。

下面按最常见场景一步步说明。


一、先确认已安装的 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

二、切换 Web 使用的 PHP-FPM(Nginx / Apache)

✅ 场景 1:Nginx 切换 PHP-FPM

1️⃣ 停止旧版本 PHP-FPM

sudo systemctl stop php7.4-fpm

2️⃣ 启动新版本 PHP-FPM

sudo systemctl start php8.2-fpm

3️⃣ 修改 Nginx 配置

编辑站点配置(如 /etc/nginx/sites-available/default):

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

⚠️ 注意:

  • php7.4-fpm.sockphp8.2-fpm.sock
  • 文件名和 PHP 版本必须一致

4️⃣ 重载 Nginx

sudo systemctl reload nginx

✅ 完成 Web 端切换


✅ 场景 2:Apache 切换 PHP-FPM

1️⃣ 禁用旧 PHP 模块

sudo a2disconf php7.4-fpm

2️⃣ 启用新 PHP 模块

sudo a2enconf php8.2-fpm

3️⃣ 重启 Apache

sudo systemctl restart apache2

三、切换 CLI 默认 PHP 版本(命令行)

方法 1:update-alternatives(推荐)

sudo update-alternatives --config php

输出示例:

  1 /usr/bin/php7.4
* 2 /usr/bin/php8.1
  3 /usr/bin/php8.2

输入编号即可切换。

验证:

php -v

方法 2:手动设置优先级

sudo update-alternatives --set php /usr/bin/php8.2

四、同时运行多个 PHP-FPM(不冲突)

可以
不同版本监听不同 sock / 端口即可:

; /etc/php/8.2/fpm/pool.d/www.conf
listen = /run/php/php8.2-fpm.sock

Nginx 不同站点可分别使用不同 PHP-FPM。


五、常见问题

❓ 切换后 502 Bad Gateway

原因:

  • Nginx 里 sock 文件版本不对
  • PHP-FPM 没启动

检查:

ls /run/php/
systemctl status php8.2-fpm

❓ 如何查看当前 PHP-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

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

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

我可以给你精确到命令级别的切换方案。

0