在 Ubuntu 中切換多個 PHP 版本
這個簡短的教程將帶您逐步了解如何在 Ubuntu Linux 及其衍生版本中切換多個 PHP 版本。本指南已在 Ubuntu 18.04 LTS 伺服器版本上官方測試。然而,它也可能適用於更新或較舊的 Ubuntu 版本。
介紹
有時,已安裝套件的最新版本可能不如你所預期般運作。你的應用程式可能與更新後的套件不相容,且只支援套件的某個舊版本。
在這種情況下,你可以很快地將有問題的套件降級到其較早的可用版本。請參考我們舊的指南,了解如何在 Ubuntu 及其衍生版本中降級套件,以及如何在 Arch Linux 及其衍生版本中降級套件,相關連結如下:
- 如何在 Ubuntu 中降級軟體包
- 如何在 Arch Linux 降級套件
在某些情況下,你不需要降級有問題的套件。在 Linux 中,我們可以同時並排使用同一個套件的多個版本。
例如,假設你正在測試一個部署在 Ubuntu 18.04 LTS 上的 LAMP 堆疊 的 PHP 應用程式。過了一段時間,你發現該應用程式在 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.61.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 apache21.1.2. 接下來,啟用 PHP 5.6 模組:
sudo a2enmod php5.61.1.3 使用指令將 PHP 5.6 設為預設版本:
sudo update-alternatives --set php /usr/bin/php5.61.1.4. 或者,您可以執行以下命令來設定您預設要使用的系統範圍 PHP 版本。
sudo update-alternatives --config php1.1.5. 輸入選擇編號以設定為預設版本,或直接按 ENTER 鍵以保留目前的選擇。
1.1.6. 如果您已安裝其他 PHP 擴展,也請將它們設為預設。
sudo update-alternatives --set phar /usr/bin/phar5.61.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 Technologies1.2. 從 PHP 5.x 切換到 PHP 7.x
同樣地,你可以透過依次執行以下命令,將 PHP 5.x 版本切換到 PHP 7.x 版本。
sudo a2enmod php7.2sudo a2dismod php5.6sudo update-alternatives --set php /usr/bin/php7.2sudo systemctl restart apache2小心提醒:
PHP 5.6 的最終穩定版本已於 2017 年 1 月 19 日 結束主動支援。然而,PHP 5.6 將持續針對重大安全問題提供支援,直到 2018 年 12 月 31 日。因此,建議儘快將所有 PHP 應用程式升級以兼容 PHP 7.x。
如果你想防止 PHP 在未來被自動升級,請參考以下指南。
- 如何防止在 Ubuntu 中自動安裝、升級或移除套件
結論
好了,以上就是全部內容。這就是我們如何在 Ubuntu 中安裝多個 PHP 版本的方法。借助 update-alternatives 指令,我們可以在 Ubuntu 中快速地從一個 PHP 版本切換到另一個,並設置預設的 PHP 版本。
