$ Composer找不到mongodb扩展名,必需的Mongodb扩展名

时间:2019-02-07 04:20:06

标签: php mongodb macos composer-php lumen-5.4

我在macOS Mojave上使用最新的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)
  

有关问题的更多信息:请参见屏幕截图

enter image description here

  

您的要求无法解决为一组可安装的   包。

     

问题1           -mongodb / mongodb v1.4.x-dev需要ext-mongodb ^ 1.5.0->系统中缺少所请求的PHP扩展mongodb。           -mongodb / mongodb 1.5.x-dev需要ext-mongodb ^ 1.6->系统中缺少所请求的PHP扩展mongodb。           -mongodb / mongodb 1.4.2需要ext-mongodb ^ 1.5.0->您的系统中缺少所请求的PHP扩展mongodb。           -mongodb / mongodb 1.4.1要求ext-mongodb ^ 1.5.0->系统中缺少所请求的PHP扩展mongodb。           -mongodb / mongodb 1.4.0需要ext-mongodb ^ 1.5.0->系统中缺少所请求的PHP扩展mongodb。           **-mongodb / mongodb ^ 1.4的安装请求-> mongodb / mongodb [1.4.0,1.4.1,1.4.2,1.5.x-dev,v1.4.x-dev]可以满足。

安装失败,将./composer.json恢复为其原始内容。

我已经安装了mongoDB扩展,仍然遇到问题enter image description here

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

4 个答案:

答案 0 :(得分:4)

我在 Ubuntu 18.0.4(Bionic)上使用 PHP版本7.4.4 (适用于Linux的XAMPP 7.4.4) 以下命令解决了我的问题

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

enter image description here

答案 1 :(得分:0)

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

enter image description here

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

答案 2 :(得分:0)

通过在终端上运行此命令来安装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服务。

答案 3 :(得分:0)

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

因此,您可能已将 mongo-ext 添加到 WAMP php.ini 中,因此它看起来好像正在运行并包含在启用的扩展列表中。但是,这对命令行 php.ini 不可用,您还需要确认您正在运行的 PHP 的 CMD 版本

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

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

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

以上不是正确的方法,因为它会在未来的其他软件包、更新和/或安装中产生问题。