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 249Warning: 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 249Warning: 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 249Warning: 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 249XML Extension not found
要如何修復呢?
PHP PECL 升級遇到 Command.php、XML 的錯誤修正
在上述的訊息裡面,最主要的訊息就是在「XML Extension not found」。
PHP PECL upgrade XML 錯誤的解法
- sudo apt install php7.3-xml # 直接安裝最新版的 XML extension 即可
- 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
您好 我最近使用的時候碰到了同樣的錯誤
但執行使用上都沒有辦法解決(目前使用的是php7.4,但因為安裝的關係可能有安裝到php8.0的套件)
使用php -v 查詢也是7.4版正常執行中
不知道這邊有沒有辦法使用其他方式解決呢?(主要是用pecl的功能都會出現上面的錯誤訊息 希望能夠解決)
因為擔心全面升級8.0又會出現狀況所以還沒測試升級8.0測試
謝謝您
建議是不要用到 PHP 7.4 就不要用到 8.0 的套件,沒辦法用 7.4 重新編譯嗎?
此篇的錯誤,只要連結的 PHP 用對,基本上就可以了~
您好 歷經幾天已經處理好了
好像8.0結構有點不同,嘗試把所有php解除安裝後 裝7.2版本會正常,但因為我要用sqlsrv需求7.4版以上,想說直接裝8.0又出現這樣的訊息,才又回頭解除8.0再安裝7.4才好(雖然過程還有些降版需求)
也是迷迷糊糊的解決了,謝謝大大的回應
嗯嗯,恭喜~ 最好都用同一版本的比較安全~ 🙂