簡體   English   中英

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

[英]$ Composer can't find mongodb extension, required Mongodb extension

我在 macOS Mojave / macOS Big Sur / macOS Monterey / macOS Ventura 上使用最新的 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)

有關問題的更多信息:請參閱屏幕截圖

在此處輸入圖像描述

您的要求無法解決為一組可安裝的軟件包。

問題 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 擴展仍然收到問題在此處輸入圖像描述

不知道我錯過了什么安裝步驟。 如果有人可以幫助我解決這個作曲家問題,我將不勝感激。 提前謝謝。

作曲家需要 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 中,因此它看起來好像正在運行並包含在啟用的擴展程序列表中。 但是,這對命令行 php.ini 不可用,您還需要確認您正在運行的 PHP 的 CMD 版本

  • 您可以在 windows ENV 變量“路徑”中確認您的 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

以上不是正確的方法,因為它會在未來與其他軟件包、更新和/或安裝產生問題。

請檢查是否安裝了mongodb模塊

php -m

轉到安裝目錄並運行以下命令(這將需要一些時間)

作曲家需要 mongodb/mongodb --ignore-platform-reqs

這將忽略 MongoDB 所需的包並安裝 rest。

如果要安裝 MongoDB 模塊,請執行以下命令

sudo apt-get install php-mongodb

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM