HOWTO · PHP

Ubuntu 上的 PHP 切換版本

本教程演示如何使用命令列切換 Ubuntu 的 PHP 版本。

本頁內容

不同的任務可能需要執行多個版本的 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。