《Linux – Ubuntu 5分鐘搞懂,快速切換當前執行的PHP版本 – 學習筆記》

Telegram share !

相信很多Linux的系統維運人員與開發人員,日常維運一定會遇到一台主機擁有多個PHP版本的問題,如果一台上同時存在PHP 5.6、7.4、8.1三個版本,如果你是按照順序安裝從低版本安裝至高版本,通常預設的PHP會設定在最後安裝的那個版本上,但如果這台主機上的PHP程式超過六成都是舊版本的,那我們就會切換預設版本為PHP 5.6,以利相關PHP程式執行不用加上版本號,本筆記我會將我所知道的知識分享給大家參考,我也順便紀錄下來當作備忘錄,也希望藉由此次分享讓初學者能更快掌握快速切換PHP相關版本。

安裝

如果你的環境尚未安裝任何一個版本的PHP,可以參考以下指令安裝以利後續測試

套件庫安裝(安裝 PPA、開啟 PHP repository)

apt update; apt install software-properties-common -y; add-apt-repository ppa:ondrej/php;

安裝不同版本的PHP

root@ip-192-168-0-99:~$ apt install php5.6 -y
root@ip-192-168-0-99:~$ apt install php7.4 -y
root@ip-192-168-0-99:~$ apt install php8.1 -y

驗證當前PHP版本

root@ip-192-168-0-99:~$ php -v
PHP 8.1.23 (cli) (built: Sep  2 2023 06:58:52) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.23, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.23, Copyright (c), by Zend Technologie

目前已安裝的PHP版本查詢-dpkg

root@ip-192-168-0-99:~$ dpkg-query -l | grep -i php

目前已安裝的PHP版本查詢-apt list

root@ip-192-168-0-99:~$ apt list --installed | grep -i php

方法1-CLI選擇:如何透過CLI快速切換PHP預設版本

root@ip-192-168-0-99:~$ update-alternatives --config php
There are 4 choices for the alternative php (providing /usr/bin/php).

  Selection  Path                     Priority      Status
------------------------------------------------------------
* 0          /usr/bin/php8.1          81            auto mode
  1          /usr/bin/php5.6          56            manual mode
  2          /usr/bin/php7.4          74            manual mode
  3          /usr/bin/php8.1          81            manual mode

Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/bin/php7.4 to provide /usr/bin/php (php) in manual mode

#透過php -v方式驗證
root@ip-192-168-0-99:~$ php -v
PHP 8.1.23 (cli) (built: Sep  2 2023 06:58:52) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.23, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.23, Copyright (c), by Zend Technologies

方法2-指令:將 PHP 8.1 設定為預設PHP版本

sudo update-alternatives –set php /usr/bin/php${version}

root@ip-192-168-0-99:~$  sudo update-alternatives --set php /usr/bin/php8.1

Reference

  • ubuntu update-alternatives:連結