PHP PECL 升級遇到 Command.php、XML 的錯誤修正

PHP 升級 PECL 遇到下述訊息:

$ sudo pecl upgrade

Warning: Invalid argument supplied for foreach() in Command.php on line 249
PHP Warning: Invalid argument supplied for foreach() in /usr/share/php/PEAR/Command.php on line 249

Warning: Invalid argument supplied for foreach() in Command.php on line 249
PHP Warning: Invalid argument supplied for foreach() in /usr/share/php/PEAR/Command.php on line 249

Warning: Invalid argument supplied for foreach() in PEAR/Command.php on line 249
PHP Warning: Invalid argument supplied for foreach() in /usr/share/php/PEAR/Command.php on line 249

Warning: Invalid argument supplied for foreach() in PEAR/Command.php on line 249
PHP Warning: Invalid argument supplied for foreach() in /usr/share/php/PEAR/Command.php on line 249

XML Extension not found

要如何修復呢?

PHP PECL 升級遇到 Command.php、XML 的錯誤修正

在上述的訊息裡面,最主要的訊息就是在「XML Extension not found」。

PHP PECL upgrade XML 錯誤的解法

  1. sudo apt install php7.3-xml # 直接安裝最新版的 XML extension 即可
  2. sudo pecl upgrade # 即可正常執行

若 XML 裝了還沒解決,就要從 PHP版本、phpize、php-config 連接的版本來追,例如考慮下述設定(請確定 phpize、php-config 確實有此執行檔)

  • sudo update-alternatives --set php /usr/bin/php7.3
  • sudo update-alternatives --set phpize /usr/bin/phpize7.3
  • sudo update-alternatives --set php-config /usr/bin/php-config7.3

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈PHP PECL 升級遇到 Command.php、XML 的錯誤修正〉中有 4 則留言

  1. 您好 我最近使用的時候碰到了同樣的錯誤
    但執行使用上都沒有辦法解決(目前使用的是php7.4,但因為安裝的關係可能有安裝到php8.0的套件)
    使用php -v 查詢也是7.4版正常執行中
    不知道這邊有沒有辦法使用其他方式解決呢?(主要是用pecl的功能都會出現上面的錯誤訊息 希望能夠解決)
    因為擔心全面升級8.0又會出現狀況所以還沒測試升級8.0測試
    謝謝您

    1. 建議是不要用到 PHP 7.4 就不要用到 8.0 的套件,沒辦法用 7.4 重新編譯嗎?

      此篇的錯誤,只要連結的 PHP 用對,基本上就可以了~

  2. 您好 歷經幾天已經處理好了
    好像8.0結構有點不同,嘗試把所有php解除安裝後 裝7.2版本會正常,但因為我要用sqlsrv需求7.4版以上,想說直接裝8.0又出現這樣的訊息,才又回頭解除8.0再安裝7.4才好(雖然過程還有些降版需求)
    也是迷迷糊糊的解決了,謝謝大大的回應

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料