本文将介绍在 Ubuntu 18.04 LTS 操作系统下切换多个 PHP 版本的方法。有的时候就是因为某些程序和更新的软件包不兼容,所以需要特定的旧版软件包,有个方法变通一下就可以解决这个问题,例如,你在测试部署在 Ubuntu 18.04 LTS 中的LAMP 栈的 PHP 程序,过了一段时间,你发现应用程序在 PHP 5.6 中工作正常,但在 PHP 7.2 中不正常(Ubuntu 18.04 LTS 默认安装 PHP 7.x)。你打算重新安装 PHP 或整个 LAMP 栈吗?但是没有必要。你甚至不必将 PHP 降级到其早期版本。
在多个 PHP 版本之间切换 要查看 PHP 的默认安装版本,请运行: $ php -v PHP 7.2.7-0ubuntu0.18.04.2 (cli) (built: Aug 26 2018 8: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。在测试你的程序几天后,你会发现你的程序不支持 PHP7.2。在这种情况下,同时使用 PHP5.x 和 PHP7.x 是个不错的主意,这样你就可以随时轻松地在任何支持的版本之间切换。 你不必删除 PHP7.x 或重新安装 LAMP 栈。你可以同时使用 PHP5.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
从 PHP 7.x 切换到 PHP 5.x 首先使用命令禁用 PHP 7.2 模块: $ sudo a2dismod php7.2 Module php7.2 disabled. To activate the new configuration, you need to run: systemctl restart apache2 接下来,启用 PHP 5.6 模块: $ sudo a2enmod php5.6 将 PHP 5.6 设置为默认版本: $ sudo update-alternatives --set php /usr/bin/php5.6 或者,你可以运行以下命令来设置默认情况下要使用的全局 PHP 版本。 $ sudo update-alternatives --config php 输入选择的号码将其设置为默认版本,或者只需按回车键保持当前选择。
如果你已安装其他 PHP 扩展,请将它们设置为默认值。 $ sudo update-alternatives --set phar /usr/bin/phar5.6 最后,重启 Apache Web 服务器: $ 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-2018 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2018, by Zend Technologies
从 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 日达到活跃支持截止时间。但是,直到 2018 年 12 月 31 日,PHP 5.6 将继续获得对关键安全问题的支持。所以,建议尽快升级所有 PHP 程序并和 PHP 7.x 兼容比较好。如果你要在 Ubuntu 下切换多个 PHP 版本的需求,那就按本文介绍的方法操作吧,它被测试是行之有效的。
相关主题 |