温馨提示×

怎么切换Ubuntu PHP版本

小樊
50
2026-08-24 10:43:00
栏目: 编程语言

在 Ubuntu 上切换 PHP 版本,常见做法有 update-alternatives(CLI)禁用/启用 Apache/Nginx 模块(Web) 两种场景。下面按常用情况给你一个完整说明。


一、查看已安装的 PHP 版本

php -v
ls /usr/bin/php*

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

1️⃣ 查看当前可切换的 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.1   81        auto mode
  1            /usr/bin/php7.4   74        manual mode
  2            /usr/bin/php8.0   80        manual mode
  3            /usr/bin/php8.1   81        manual mode

输入编号回车即可切换。

检查:

php -v

2️⃣ 单独切换 phpize / php-config(可选)

sudo update-alternatives --config phpize
sudo update-alternatives --config php-config

三、切换 Apache 下的 PHP 版本(Web)

1️⃣ 禁用旧版本,启用新版本

假设从 PHP 7.4 切换到 8.1:

sudo a2dismod php7.4
sudo a2enmod php8.1
sudo systemctl restart apache2

查看当前加载模块:

apache2ctl -M | grep php

四、切换 Nginx 下的 PHP 版本(Web)

Nginx 使用 PHP-FPM,切换方式不同。

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

ls /run/php/

2️⃣ 停止旧版本,启动新版本

sudo systemctl stop php7.4-fpm
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm

3️⃣ 修改 Nginx 配置

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

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

重启 Nginx:

sudo systemctl restart nginx

五、同时安装多个 PHP 版本(推荐做法)

sudo apt install php7.4 php8.1 php8.2

然后按需切换 CLI / Web 使用版本即可。


六、常见命令速查

功能 命令
切换 CLI PHP update-alternatives --config php
Apache 切换 a2dismod phpX.X && a2enmod phpY.Y
Nginx 切换 修改 fastcgi_pass
查看 PHP 模块 php -m
查看 PHP 配置 php --ini

七、常见问题

❓ 切换后 php -v 没变?

  • 确认用的是 update-alternatives
  • 检查是否有 alias 或软链接覆盖

❓ Web 和 CLI 版本不一致?

✅ 正常

  • CLI:update-alternatives
  • Web:Apache / Nginx 配置

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

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

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

0