Composer 安裝教學-以 Debian/Ubuntu 環境中示範
Composer是一個PHP相依套件的管理工具,可以讓開發者依自己的需求來自動安裝及更新所需要的相依套件,這在開發及維護上來說會方便許多。現在很多PHP專案可以藉由Composer來進行管理,如:著名的PHP框架有Laravel與Symfony等等,還有很多架站工具,例如:Drupal、Joomla和Magento等等。
本文教學將會指引使用者如何在Debian/Ubuntu環境上安裝Composer,當然如果你是使用其他Linux發行版,也是一樣可以參考此篇教學,只是在更新系統的套件資訊及安裝PHP套件時,指令會有些不一樣(Debian/Ubuntu是使用APT;RHEL/CentOS等等是使用YUM),但在安裝Composer的過程都是一樣的。本文教學所安裝的Composer為全域(globally)方式,這樣你就可以在全域環境使用Composer來管理套件了。
1)更新系統的套件資訊及安裝PHP-CLI套件。
Step 1:將Debian/Ubuntu系統的套件資訊與版本更新到最新。
sudo apt-get update && sudo apt-get upgrade -y
Step 2:如果你的系統還未安裝好PHP Command-Line Interface(PHP-CLI),那還需要安裝Composer會用到的PHP-CLI及其他的PHP相依套件,如以下筆者安裝了PHP 8.1版本的PHP-CLI。假如你的Debian/Ubuntu無法安裝PHP 8.1版本的PHP-CLI或其他目前還有在支援的PHP版本,那可以參考此篇Debian/Ubuntu環境下安裝PHP的教學。
**Composer要求的PHP版本為PHP 5.3.2或以上。
**在Debian/Ubuntu系統環境安裝PHP 8.2版本的PHP-CLI指令參考如下:
sudo apt-get install php8.1-cli -y
2)下載與安裝Composer,及將Composer設定為全域可執行的指令。
**筆者此篇教學參考了Composer官網的Composer安裝文檔,來將Composer安裝至Linux環境。
Step 1:從Composer官網下載Composer安裝檔至tmp目錄。
php -r "copy('https://getcomposer.org/installer', '/tmp/composer-setup.php');"
Step 2:使用官方提供的SHA-384簽章來驗證剛剛下載好的Composer安裝檔。
**Composer安裝檔的SHA-384安裝檔數位簽章(Installer Signature (SHA-384)),可以至Composer Public Keys / Signatures頁面查看。
**如筆者在2023年7月查到Composer安裝檔的SHA-384驗證簽章為:
e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02
那就將其值輸入進去,相關指令可以參考如下:
php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('/tmp/composer-setup.php'); } echo PHP_EOL;"
Step 3:接著可以來安裝Composer了,為了可以讓Composer可以在全域環境中使用,所以要將Composer安裝至『usr/local/bin』目錄,以及需要將Composer重新命名為『composer』,這樣日後你需要使用Composer來管理套件時,開頭只需輸入『composer』就能使用Composer的指令了。
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
Step 4:接著可以來查看Composer是否安裝正確,你可以輸入『composer -V』Composer版本檢查指令,如能出現下圖所示的訊息『Composer version 2.x.x DATE TIME』,則表示你的Composer已成功安裝在系統上。
composer -V
**Composer現在的版本v2為最新版本,若你使用的某些套件無法支援Composer的v2來進行管理與更新,那可以將版本降成v1版本,指令如下:
composer self-update --1
若日後想要回到v2版本:
composer self-update --2
甚至若要使用特定版本,也是可以的(關於Composer過去歷史的版本號,請參考Composer Download的最下面):
composer self-update <版本號>
Step 5:最後從tmp目錄中,將剛剛下載的Composer安裝檔刪除。
rm /tmp/composer-setup.php
Step 6:你可以輸入『composer』來查看Composer有哪些可用的指令。
composer
3)更新Composer版本的指令。
Step 1:如果日後需要將Composer更新,那可以輸入『sudo composer self-update』或『sudo composer selfupdate』來將Composer更新至最新版本。
sudo composer self-update
若更新Composer出現錯誤:
[RuntimeException]
SHA384 is not supported by your openssl extension, could not verify the phar file integrity
請試著從本文教學的第二項目(下載與安裝Composer)重新執行Composer的安裝就能解決。
4)解決Composer執行過慢的問題。
**以下教學僅適用於Composer的v1版本,因v2版本已改善Composer執行過慢的問題。
Step 1:如果你在使用Composer檢查相依套件和下載套件的過程有遇到過慢的問題,那可以試著使用由開發者hirak所維護的prestissimo插件,來改善Composer執行過慢的問題,在安裝prestissimo插件之前,你需要安裝好PHP-cURL套件和zip解壓縮工具。因為筆者本篇教學是使用PHP 8.1版本,所以就安裝了PHP 8.1版本的php8.1-curl。
sudo apt-get install php8.1-curl zip unzip -y
Step 2:接著安裝hirak所維護的prestissimo插件,就可以改善Composer執行過慢的問題了。
composer require hirak/prestissimo
在安裝的過程,如果遇到『[ErrorException] mkdir(): Permission denied』權限的問題,而無法順利安裝時,那試著輸入以下的指令:
sudo chown -R <使用者名稱> ~/.composer/cache/
比如說筆者的Ubuntu系統的使用者名稱為『demo』,那會輸入如以下的指令:
sudo chown -R demo ~/.composer/cache/