不同的任务可能需要运行多个版本的 PHP。
你可能需要通过在同一服务器上运行两个站点或使用过时的方法测试旧版本的代码来切换 PHP 版本。
我们可以使用命令行在 Ubuntu 上切换 PHP 版本,只需几个命令。
本文介绍了在 Ubuntu 上切换 PHP 版本的完整过程。
如何在 Ubuntu 上切换 PHP 版本
首先,让我们检查一下我们系统上安装的 PHP 版本。打开 Ubuntu bash 并插入以下命令:
$ php -v
输出将显示我们系统上使用的 PHP 版本。
输出:
PHP 7.4.3 (cli) (built: Nov 25 2021 23:16:22) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
输出显示我们的系统上只安装了 PHP 7.4.3。先安装另一个版本的 PHP,然后尝试切换。
插入以下命令来安装 PHP 5.6:
#add php repository; this repository might not install earlier or later versions of PHP.
$ sudo add-apt-repository -y ppa:ondrej/php
#update sudo
$ sudo apt update
#install php 5.6
$ sudo apt install php5.6
每个命令的输出不应检索错误。否则,将不会安装 php 5.6。
如果再次检查 PHP 版本,输出仍然是相同的。
要将 PHP 版本从 7.4.3 切换到 5.6,请在 bash 中插入以下命令。
要禁用 PHP 7.4.3:
$ sudo a2dismod php7.4
输出:
Module php7.4 already disabled
如果输出与上述不同,你可能需要安装 apache mod 并运行上述命令来禁用 PHP 7.4。运行此命令以安装 apache mod。
$ sudo apt-get install libapache2-mod-php7.4
禁用 PHP 7.4 后,运行以下命令启用 PHP 5.6:
$ sudo a2enmod php5.6
输出:
Considering dependency mpm_prefork for php5.6:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php5.6:
Module php5.6 already enabled
你可能需要在运行这些命令之间重新启动 apache。
$ sudo service apache2 restart
PHP 从 7.4 切换到 5.6。如果你需要将 PHP 5.6 设置为默认版本,请使用以下命令。
#This command will directly set PHP 5.6 as default. Manual Switching
$ sudo update-alternatives --set php /usr/bin/php5.6
#This command will give you the option to select a default PHP version. Interactive Switching
$ sudo update-alternatives --config php
输出:
There are 3 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/php7.4 74 auto mode
* 1 /usr/bin/php5.6 56 manual mode
2 /usr/bin/php7.0 70 manual mode
3 /usr/bin/php7.4 74 manual mode
Press <enter> to keep the current choice[*], or type selection number:
你只需输入相应的数字即可选择任何版本。选择的版本将被设置为默认值。
你还需要将其他 PHP 扩展设置为默认值。例如:
$ sudo update-alternatives --config phar
该命令还将为你提供 phar
版本列表,你可以像上面一样选择默认值。如果你在完成设置默认值后重新启动 apache,将会有所帮助。
$ sudo service apache2 restart
要切换回 PHP 7.4,你必须反之运行这些命令。
$ sudo a2dismod php5.6
$ sudo a2enmod php7.4
$ sudo service apache2 restart
输出将显示 PHP 5.6 已禁用,而 7.4 已启用。如果需要,重新启动 apache。