温馨提示×

怎么在Debian切换PHP版本

小樊
46
2026-07-05 20:19:03
栏目: 编程语言

在 Debian 系统中切换 PHP 版本,常见做法是通过 update-alternatives修改 Web 服务器(Apache / Nginx)使用的 PHP-FPM 版本。下面分情况说明。


一、先确认已安装的 PHP 版本

dpkg -l | grep php

ls /usr/bin/php*

二、使用 update-alternatives 切换 CLI 的 PHP 版本(命令行)

1️⃣ 列出可用的 PHP 替代项

sudo update-alternatives --display php

2️⃣ 设置默认 PHP 版本

sudo update-alternatives --config php

示例输出:

There are 3 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php8.2   82        auto mode
  1            /usr/bin/php7.4   74        manual mode
  2            /usr/bin/php8.1   81        manual mode
  3            /usr/bin/php8.2   82        manual mode

Press <enter> to keep the current choice[*], or type selection number:

输入对应数字即可。

✅ 验证:

php -v

三、Apache 切换 PHP 版本(使用 libapache2-mod-php

1️⃣ 禁用当前 PHP 模块

sudo a2dismod php7.4

2️⃣ 启用新 PHP 模块

sudo a2enmod php8.2

3️⃣ 重启 Apache

sudo systemctl restart apache2

四、Nginx / PHP-FPM 切换 PHP 版本(推荐方式)

1️⃣ 查看已安装的 PHP-FPM

ls /run/php/

常见如:

php7.4-fpm.sock
php8.2-fpm.sock

2️⃣ 修改 Nginx 站点配置

编辑:

sudo nano /etc/nginx/sites-available/default

找到:

fastcgi_pass unix:/run/php/php7.4-fpm.sock;

改为:

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

3️⃣ 重启服务

sudo systemctl restart php8.2-fpm
sudo systemctl restart nginx

五、同时运行多个 PHP 版本(进阶)

  • CLI:用 update-alternatives
  • Web:
    • Apache:不同虚拟主机用不同 php-fpm
    • Nginx:不同 server 块指定不同 php-fpm sock

六、常见问题

❓ 没有 update-alternatives 选项?

说明只安装了一个 PHP 版本,先安装:

sudo apt install php8.2 php8.2-cli

❓ 切换后 php -v 不变?

确认你改的是 CLI,而不是 Web 环境。


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

  • Debian 版本(10 / 11 / 12)
  • 使用的是 Apache 还是 Nginx
  • 想切换的是 CLI 还是 Web

我可以给你更精确的命令。

0