如何在 Ubuntu 中切换多个 PHP 版本

这个简短的教程将引导您完成在 Ubuntu Linux 及其衍生版本中切换多个 PHP 版本的步骤。 本指南在 Ubuntu 18.04 LTS 服务器版上正式测试。 它也可以在其他较旧或较新的 Ubuntu 版本上运行。

内容

  1. 介绍
  2. 1. 在多个 PHP 版本之间切换
    1. 1.1。 从 PHP 7.x 切换到 PHP 5.x
      1. 2. 从 PHP 5.x 切换到 PHP 7.x

介绍

有时,已安装软件包的最新版本可能无法按预期工作。 您的应用程序可能与更新的包不兼容,并且仅支持特定的旧版本包。

在这种情况下,您可以立即将有问题的软件包降级到其早期的工作版本。 请参阅我们的旧指南,了解如何在 Ubuntu 及其变体中降级软件包 这里 以及如何在 Arch Linux 及其衍生产品中降级软件包 这里.

在某些情况下,您不需要降级有问题的软件包。 在 Linux 中,我们可以同时并排使用同一个包的多个版本。

例如,假设您正在测试一个 PHP 应用程序 灯堆栈 部署在 Ubuntu 18.04 LTS 中。 过了一会儿,您发现该应用程序在 PHP 5.6 中运行良好,但在 PHP 7.2 中却不行(Ubuntu 18.04 LTS 默认安装 PHP 7.x)。

您要重新安装 PHP 还是重新安装整个 LAMP 堆栈? 不必要。

您甚至不必将 PHP 降级到其早期版本。 您可以在几分钟内简单地切换到以前工作的 PHP 版本。

1. 在多个 PHP 版本之间切换

让我们使用命令检查 PHP 的默认安装版本:

$ php -v

样本输出:

PHP 7.2.7-0ubuntu0.18.04.2 (cli) (built: Jul 4 2018 16:55:24) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.7-0ubuntu0.18.04.2, Copyright (c) 1999-2018, by Zend Technologies

可以看到,安装的 PHP 版本是 7.2.7。

在测试了您的应用程序几天后,您发现您的应用程序不支持 PHP 7.2。 在这种情况下,最好同时拥有 PHP 5.x 版本和 PHP 7.x 版本,这样您就可以随时在任何支持的版本之间轻松切换。

您无需删除 PHP 7.x 或重新安装 LAMP 堆栈。 您可以同时使用 PHP 5.x 和 7.x 版本。

我假设您尚未在系统中卸载 php 5.6。 以防万一,您已经删除了它,您可以使用如下所示的 PPA 再次安装它。

您可以从 PPA 安装 PHP 5.6:

$ sudo add-apt-repository -y ppa:ondrej/php $ sudo apt update $ sudo apt install php5.6

1.1。 从 PHP 7.x 切换到 PHP 5.x

1.1.1 首先使用命令禁用 PHP 7.2 模块:

$ sudo a2dismod php7.2

样本输出:

Module php7.2 disabled. To activate the new configuration, you need to run: systemctl restart apache2

1.1.2。 接下来,启用 PHP 5.6 模块:

$ sudo a2enmod php5.6

1.1.3 使用命令将 PHP 5.6 设置为默认版本:

$ sudo update-alternatives --set php /usr/bin/php5.6

1.1.4。 或者,您可以运行以下命令来设置默认情况下要使用的系统范围的 PHP 版本。

$ sudo update-alternatives --config php

1.1.5。 Enter 选择编号将其设置为默认版本,或者只需按 ENTER 即可保留当前选择。

更改 PHP 默认版本

1.1.6。 如果您安装了其他 PHP 扩展,也将它们设置为默认值。

$ sudo update-alternatives --set phar /usr/bin/phar5.6

1.1.7。 最后,重启你的 Apache 网络服务器:

$ sudo systemctl restart apache2

现在,检查 PHP 5.6 是否是默认版本:

$ php -v

样本输出:

PHP 5.6.37-1+ubuntu18.04.1+deb.sury.org+1 (cli)  Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

2. 从 PHP 5.x 切换到 PHP 7.x

同样,您可以通过依次运行以下命令从 PHP 5.x 切换到 PHP 7.x 版本。

$ sudo a2enmod php7.2
$ sudo a2dismod php5.6
$ sudo update-alternatives --set php /usr/bin/php7.2
$ sudo systemctl restart apache2

提醒一句:

最终稳定的 PHP 5.6 版本已经达到 主动支持结束 自 2017 年 1 月 19 日起。但是,PHP 5.6 将继续获得对关键安全问题的支持,直到 2018 年 12 月 31 日。因此,建议您尽快升级所有 PHP 应用程序以与 PHP 7 .x 兼容。

如果您想防止 PHP 以后自动升级,请参考以下指南。

  • 如何防止软件包在 Ubuntu 中被自动安装、升级或删除

而且,这就是现在的全部。 希望这可以帮助。

LAMP StackLinuxLinux 技巧PHPPHP 技巧在多个 PHP 版本之间切换切换 PHP 到其他版本Ubuntu