mongodb ERROR: Class 'MongoDB¥Driver¥Manager' not found {"exception":"[object] (Symfony¥¥Component¥¥Debug¥¥Exception¥¥FatalThrowableError(code: 0): Class 'MongoDB¥¥Driver¥¥Manager' not found at mongodb
■エラー内容
docker上で、php+laravelコンテナと、mongodbコンテナをセットしてシステム構築した際に出たエラー
local.ERROR: Class MongoDB¥Driver¥Manager not found { exception : [object]
(Symfony¥¥Component¥¥Debug¥¥Exception¥¥FatalThrowableError(code: 0): Class MongoDB¥¥Driver¥¥Manager not found at
./vendor/mongodb/mongodb/src/Client.php:87)
[stacktrace]
#0 ./vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/Connection.php(141): MongoDB¥¥Client->__construct( mongodb://127.0... Array Array)
#1 ./vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/Connection.php(41): Jenssegers¥¥Mongodb¥¥Connection->createConnection( mongodb://127.0... Array Array)
#2 ./vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/MongodbServiceProvider.php(30): Jenssegers¥¥Mongodb¥¥Connection->__construct(Array)
#3 [internal function]: Jenssegers¥¥Mongodb¥¥MongodbServiceProvider->Jenssegers¥¥Mongodb¥¥{closure}(Array mongodb )
#4 ./vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(109): call_user_func(Object(Closure) Array mongodb )
#5 ./vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php(74): Illuminate¥¥Database¥¥DatabaseManager->makeConnection( mo
■phpinfoで、php側コンテナを確認すると前のバージョンで、mongodbがはいってるのに今回はなかった
今回の環境はdocker上でphpとmongodbを別コンテナに管理してる。
でもって、phpのコンテナ側にMongoDBドライバがなかったのが原因っぽい、
なのでphp環境にもMongoDBドライバを追加
■実行コマンド
# pecl install mongodb
もしくは Dockerfileに以下を追加
RUN apt-get install -y --no-install-recommends ¥
pecl install mongodb && ¥
■確認
# pecl list
Installed packages channel pecl.php.net:
=========================================
Package Version State
mongodb 1.7.4 stable
あと、php.iniにextension=mongodb.soを追加
You should add extension=mongodb.so to php.ini
ちなみに古いバージョンだと名前が違うみたい