$ Composer 找不到 mongodb 扩展,需要 Mongodb 扩展

$ Composer can't find mongodb extension, required Mongodb extension

我在 macOS Mojave / macOS Big Sur / macOS Monterey 上使用最新的 php 7.2 版并收到类似

的错误
 $composer require mongodb/mongodb
Using version ^1.4 for mongodb/mongodb
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)

For more information about question : see the screenshoot

Your requirements could not be resolved to an installable set of packages.

Problem 1 - mongodb/mongodb v1.4.x-dev requires ext-mongodb ^1.5.0 -> the requested PHP extension mongodb is missing from your system. - mongodb/mongodb 1.5.x-dev requires ext-mongodb ^1.6 -> the requested PHP extension mongodb is missing from your system. - mongodb/mongodb 1.4.2 requires ext-mongodb ^1.5.0 -> the requested PHP extension mongodb is missing from your system. - mongodb/mongodb 1.4.1 requires ext-mongodb ^1.5.0 -> the requested PHP extension mongodb is missing from your system. - mongodb/mongodb 1.4.0 requires ext-mongodb ^1.5.0 -> the requested PHP extension mongodb is missing from your system. **- Installation request for mongodb/mongodb ^1.4 -> satisfiable by mongodb/mongodb[1.4.0, 1.4.1, 1.4.2, 1.5.x-dev, v1.4.x-dev].

安装失败,正在将 ./composer.json 还原为其原始内容。

我已经安装了 mongoDB 扩展仍然收到问题

不确定我错过了什么安装步骤。如果有人可以帮助我解决这个作曲家问题,我将不胜感激。提前谢谢。

composer require mongodb/mongodb --ignore-platform-reqs

composer require mongodb/mongodb --ignore-platform-reqs
composer require jenssegers/mongodb --ignore-platform-reqs

Using version ^3.4 for jenssegers/mongodb
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 2 installs, 0 updates, 0 removals
  - Installing mongodb/mongodb (1.4.2): Downloading (100%)         
  - Installing jenssegers/mongodb (v3.4.5): Downloading (100%)         
jenssegers/mongodb suggests installing jenssegers/mongodb-session (Add MongoDB session support to Laravel-MongoDB)
jenssegers/mongodb suggests installing jenssegers/mongodb-sentry (Add Sentry support to Laravel-MongoDB)
Writing lock file
Generating optimized autoload files

composer require jenssegers/mongodb --ignore-platform-reqs 它解决了我的问题。

在您的终端上通过 运行 此命令安装 PHP 扩展。

sudo pecl install mongodb

最后,您将看到以下信息。

Build process completed successfully
Installing '/usr/local/Cellar/php/7.3.3/pecl/20180731/mongodb.so'
install ok: channel://pecl.php.net/mongodb-1.5.3
Extension mongodb enabled in php.ini

然后重新启动您的 PHP 服务。

使用 WAMP 时会发生此错误,因为 WAMP 和 CMD 有唯一的 php.ini。

所以您可能已经将 mongo-ext 添加到您的 WAMP php.ini 中,所以它看起来好像是 运行ning 并且包含在启用的扩展列表中。但是,这不适用于命令行 php.ini 并且您还需要确认 PHP 您使用的是 运行ning

的 CMD 版本
  • 您可以在 windows ENV 变量“路径”
  • 中确认您的 CMD PHP 版本
  • 如果 CMD php 版本与您包含的版本不同 mongo-ext,您必须将 mongo-ext 安装到该版本的 PHP 或更改您的路径变量以指向您当前使用的 PHP 版本使用
  • 然后确保在 php.ini
  • 的 WAMP 和 CMD 版本中都设置了 extension=php_mongodb

为了确认您已经成功,您的 mongo-ext 将显示在您的 phpinfo() 中,如果您在 CMD 上 运行 php -m将显示在渲染列表中

composer require jenssegers/mongodb --ignore-platform-reqs

以上不是正确的方法,因为它会在未来与其他包、更新 and/or 安装产生问题。

请检查是否安装了 mongodb 个模块

php -m

进入安装目录并运行下面的命令(需要一些时间)

composer require mongodb/mongodb --ignore-platform-reqs

这将忽略 MongoDB 所需的包,其余的将被安装。

如果你想安装 MongoDB 模块然后执行下面的命令

sudo apt-get install php-mongodb