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來管理套件了。
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 7.4版本的PHP-CLI。假如你的Debian/Ubuntu無法安裝PHP 7.4版本的PHP-CLI或其他目前還有在支援的PHP版本,那可以參考此篇Debian/Ubuntu環境下安裝PHP的教學。
**Composer要求的PHP版本為PHP 5.3.2或以上。
**在Debian/Ubuntu系統環境安裝PHP 7.4版本的PHP-CLI指令參考如下:
sudo apt-get install php7.4-cli -y
**筆者此篇教學參考了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頁面查看。
**如筆者在2020年6月查到Composer安裝檔的SHA-384驗證簽章為:
e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a
那就將其值輸入進去,相關指令可以參考如下:
php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { 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 1.x.x DATE TIME』,則表示你的Composer已成功安裝在系統上。
composer -V
Step 5:最後從tmp目錄中,將剛剛下載的Composer安裝檔刪除。
rm /tmp/composer-setup.php
Step 6:你可以輸入『composer』來查看Composer有哪些可用的指令。
composer
Step 1:如果日後需要將Composer更新,那可以輸入『sudo composer self-update』或『sudo composer selfupdate』來將Composer更新至最新版本。
sudo composer self-update
Step 1:如果你在使用Composer檢查相依套件和下載套件的過程有遇到過慢的問題,那可以試著使用由開發者hirak所維護的prestissimo插件,來改善Composer執行過慢的問題,在安裝prestissimo插件之前,你需要安裝好PHP-cURL套件和zip解壓縮工具。因為筆者本篇教學是使用PHP 7.4版本,所以就安裝了PHP 7.4版本的php7.4-curl。
sudo apt-get install php7.4-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/