由于PHP8.1无法使用PECL,所以我进行了修正

我遇到了一个问题,当我尝试升级到PHP8.1并使用pecl进行安装时。我将一直写到解决方法为止。

基本信息

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.3 LTS"
VERSION_ID="20.04"

$ php -v
PHP 8.1.1 (cli) (built: Dec 31 2021 07:26:20) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.1, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.1, Copyright (c), by Zend Technologies

请描述一下下面的问题(请以中文回答)。

安装PHP驱动程序时出现了与MongoDB连接的问题。

$ sudo pecl install mongodb
PHP Warning:  foreach() argument must be of type array|object, null given in /usr/share/php/PEAR/Command.php on line 249
XML Extension not found

哎呀!找不到XML扩展功能了。

解决问题

那么,我们来安装XML扩展功能吧。

$ sudo apt-get install php-xml php8.1-xml

请重新运行有问题的代码。

$ sudo pecl install mongodb
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
downloading mongodb-1.12.0.tgz ...
Starting to download mongodb-1.12.0.tgz (1,392,375 bytes)
...................................................................................................................................................................................................................................................................................done: 1,392,375 bytes
633 source files, building

由於順利執行,所以一切OK。