使用 PECL 安装 MongoDB PHP 扩展

有关安装此 PECL 扩展的信息可以在手册章节中找到,标题为 安装 PECL 扩展。其他信息,例如新版本、下载、源文件、维护者信息和更改日志,可以在这里找到: » https://pecl.php.net/package/mongodb

Linux、Unix 和 macOS 用户可以运行以下命令来安装扩展

$ sudo pecl install mongodb

在安装了多个 PHP 版本的系统(例如 macOS 默认版本、Homebrew、» XAMPP)上,每个 PHP 版本都将有自己的 pecl 命令和 php.ini 文件。此外,每个 PHP 环境(例如 CLI、Web)可能使用单独的 php.ini 文件。

从扩展版本 1.17.0 开始,PECL 将提示各种 configure 选项。要在非交互式脚本中使用默认选项安装扩展,可以使用 yes 命令将空字符串输入管道到 pecl install

$ yes '' | sudo pecl install mongodb

支持的 configure 选项的完整列表可以在 PECL 包中包含的 package.xml 文件中找到。要在非交互式脚本中使用特定 configure 选项安装扩展,可以使用 pecl install--configureoptions 选项

$ sudo pecl install --configureoptions='with-mongodb-system-libs="yes" enable-mongodb-developer-flags="no"' mongodb

默认情况下,通过 PECL 安装扩展将使用 » libbson» libmongoc» libmongocrypt 的捆绑版本,并尝试自动配置它们。

注意: 如果构建过程无法找到 SSL 库,请检查开发包(例如 libssl-dev)和 » pkg-config 是否都已安装。如果这无法解决问题,请考虑使用 手动安装 过程。

最后,将以下行添加到每个需要使用扩展的环境的 php.ini 文件中

extension=mongodb.so

添加注释

用户贡献的注释 9 个注释

mohammadhoseinmazalahi at gmail dot com
4 年前
从 Ubuntu 20.04 开始,数据库中的 php-mongodb 已过时,您需要使用 PECL 方法来安装最新版本的 MongoDB。

要在 Ubuntu 中执行此操作,您需要 php-pear 插件和 php-dev
sudo apt install php-dev php-pear

然后您可以运行
sudo pecl install mongodb
contact ? automatix : info
8 年前
可能还需要 pkg-config(在 Ubuntu 14.04 上)。

$ pecl install mongodb
...
configure: error: Cannot find OpenSSL's libraries
ERROR: `/tmp/pear/temp/mongodb/configure --with-php-config=/usr/bin/php-config' failed



$ apt-get install pkg-config
...
正在设置 pkg-config (0.26-1ubuntu4) ...
$ pecl install mongodb
...
构建过程已成功完成
正在安装 '/usr/lib/php/20151012/mongodb.so'
install ok: channel://pecl.php.net/mongodb-1.1.7
配置选项“php_ini”未设置为 php.ini 位置
您应该将“extension=mongodb.so”添加到 php.ini
asologor at gmail dot com
7 年前
在 Ubuntu 上,您只需执行

sudo apt-get install php-mongodb

或针对特定 PHP 版本执行相同操作

sudo apt-get install php5.6-mongo

或者

sudo apt-get install php7.0-mongodb
rafael_xuvisco at yahoo dot com dot br
7 年前
Ubuntu 16.04

sudo apt-get install libcurl4-openssl-dev pkg-config libssl-dev libsslcommon2-dev

sudo pecl install mongodb

在 fpm 和 cli 中添加 extension=mongodb.so

sudo vim /etc/php/7.0/fpm/conf.d/30-mongodb.ini

sudo vim /etc/php/7.0/cli/conf.d/30-mongodb.ini

重新启动服务

sudo systemctl restart php7.0-fpm

sudo systemctl reload nginx
Tim Greiser
8 年前
[编辑注:已修复错别字]

您需要构建 pecl 包,还需要一些其他要求。

sudo apt-get install libcurl4-openssl-dev pkg-config libssl-dev libsslcommon2-dev
Anonymous
7 年前
我遇到了错误“fatal error: pcre.h: No such file or directory”,并且还必须安装另一个依赖项

sudo apt-get install libpcre3-dev
Unmesh
7 年前
以下步骤对我在 Centos7 上有效

sudo yum install -y openssl-devel
sudo yum install pecl
sudo yum install gcc
sudo pecl install mongodb
maneesh dot singh at hof-university dot com
7 年前
嗨,
我正在研究 php mongo db 驱动程序的安装。
我使用 phpinfo 检查过,它显示 mongodb 模块已加载,但当我使用它时,我的代码会给出错误“Fatal error: Uncaught Error: Class 'MongoDB' not found”

我还有另一个用于 redis 的模块,它运行得很好。最初我遇到的是相同的错误,但 phpinfo 显示模块未加载。

我认为驱动程序存在一些问题。我已经尝试了所有提到包含 extenstion=mongodb.so 的文档和网站链接,我已经这样做了。

我使用的是带有 apache 服务器的 open suse 42.2 leap。

你能帮我调查一下这个问题吗?
如果你需要更多信息,请告诉我。

谢谢
Maneeshg
ovidius at email dot it
7 年前
安装并添加 extension=mongodb 到 php.ini 后,当我运行 php -v 时,我收到此错误

bus error php -v

会是什么问题?构建过程已成功完成。
To Top