相信很多Linux的系統維運人員與開發人員,日常維運一定會遇到一台主機擁有多個PHP版本的問題,如果一台上同時存在PHP 5.6、7.4、8.1三個版本,如果你是按照順序安裝從低版本安裝至高版本,通常預設的PHP會設定在最後安裝的那個版本上,但如果這台主機上的PHP程式超過六成都是舊版本的,那我們就會切換預設版本為PHP 5.6,以利相關PHP程式執行不用加上版本號,本筆記我會將我所知道的知識分享給大家參考,我也順便紀錄下來當作備忘錄,也希望藉由此次分享讓初學者能更快掌握快速切換PHP相關版本。
Table of Contents
安裝
如果你的環境尚未安裝任何一個版本的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:連結
你好,我是RD爸,希望透過我的紀錄,可以帶給你一些新的想法~ 專注於各式3C產品的開箱評測、程式相關技術及理財筆記。
email ►[email protected]