Ting-Jun (snsd0805)

Ting-Jun (snsd0805)

Developer. Student

© 2019

[筆記]紀錄安裝composer錯誤處理

Composer

以前有在Ubuntu 16.04的環境上安裝過composer使用過monolog,
而在當時其實也沒有很認真的學composer,所以在那之後就沒有使用過。

現在覺得自己好像有點在原地打轉,想說就照2019 年成為 Web 開發人員的路線圖來學習。
在Arch Linux上照著文件安裝composer卻遇到了錯誤。
雖然還有地方沒有釐清,用了繞路的方法避開問題,然而這是紀錄下至少可以運作的方法QQ

錯誤(一)描述

照著官方文件進行安裝,然而在第一步驟卻就遇到了問題,

	php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

出現以下錯誤訊息

 PHP Warning:  PHP Startup: Unable to load dynamic library '/path/to/extension/mysqli.so'

錯誤(一)處理

php無法開啟該mysqli.so library,
然而我尚不確定為什麼我的路徑長這樣,推斷有可能是我自己安裝LAMP時只顧著複製貼上…
經確認後我的mysqli.so路徑在/usr/lib/php/modules裡,
於是修改了php.ini檔案(該檔案位置視不同裝置不同而有可能在不同路徑)

	sudo vim /etc/php/php.ini

修改該行路徑extension=/path/to/extension/mysqli.so成正確mysqli.so路徑

錯誤(二)描述

然而修改後卻跳出不同的錯誤訊息

PHP Warning:  Module 'mysqli' already loaded in Unknown on line 0

錯誤(二)解決

看起來mysqli被重複讀取,使用grep搜尋關於mysqli的extension

	cat /etc/php/php.ini | grep "mysqli"

發現了真的重複載入,註解掉其一

	extension=/usr/lib/php/modules/mysqli.so
	extension=mysqli

錯誤(三)描述

成功完成第一步驟然而第二步驟卻又錯誤…Installer corrupt
網路上許多人遇到同樣問題,然而許多人都建議改用其他方法安裝,因此目前我也無法找到真正原因,
等過一陣子有空再回來找問題所在QQ。

錯誤(三)尚未處理,附上其他方法

以下紀錄至少可運作的方法。

  1. 下載composer-setup.php
     php -r "copy('http://getcomposer.org/installer', 'composer-setup.php');"
    
  2. 安裝到bin路徑下 可全域使用
     php composer-setup.php --install-dir=/usr/local/bin --filename=composer
    
  3. 取消連結
     php -r "unlink('composer-setup.php');"
    
  4. 檢查是否安裝
     composer --version