温馨提示×

怎么在Debian切PHP版

小樊
42
2026-09-05 05:56:55
栏目: 编程语言

在 Debian 上“切换 PHP 版本”通常指 系统同时装了多个 PHP(如 7.4 / 8.1 / 8.2),在 CLI 或 Web(Apache/Nginx)里切换使用哪一个。下面按常见场景说明。


一、先确认装了哪些 PHP 版本

ls /usr/bin/php*
dpkg -l | grep php | grep -E 'php[0-9]'

例如看到:

  • php7.4
  • php8.1
  • php8.2

二、切换 CLI(命令行)PHP 版本

方法 1:update-alternatives(推荐)

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

或交互选择:

sudo update-alternatives --config php

验证:

php -v

三、Apache 下切换 PHP 版本

如果你用 mod_php(不推荐多版本)

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

⚠️ Apache 只能启用一个 mod_php


四、Nginx 下切换 PHP 版本(PHP-FPM)

1. 禁用旧 FPM

sudo systemctl stop php7.4-fpm
sudo systemctl disable php7.4-fpm

2. 启用新 FPM

sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm

3. 修改 Nginx 配置

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

然后:

sudo nginx -t
sudo systemctl reload nginx

五、Composer / 项目指定 PHP(不切换系统)

php8.1 /usr/local/bin/composer install

或在 composer.json:

"config": {
  "platform": {
    "php": "8.1"
  }
}

六、常见坑

  • 扩展没装:sudo apt install php8.1-mysql php8.1-curl
  • CLI 和 Web 版本不一致(很常见)
  • 切换后清缓存:sudo systemctl restart php*-fpm

如果你能告诉我:

  • Debian 版本
  • 用 Apache 还是 Nginx
  • 当前 PHP 版本和目标版本

我可以给你精确命令。

0 踩