FuelPHP1.8を使用したプロジェクトで、ubuntuにMongoDBをインストールした際の覚書
インストール済みパッケージ
・PHP 7.0.15-1ubuntu4(apt-get)
・MongoDB shell version v3.4.3
・MongoDB extension version 1.2.3
※MongoDBは、https://www.mongodb.com/download-center?jmp=nav#communityから取得
症状
FuelPHP1.5で作成していたプログラムをそのまま使うと以下のエラーが発生した。
Fuel\Core\Mongo_DbException [ Error ]:
The MongoDB PECL extension has not been installed or enabled
/fuel/core/classes/mongo/db.phpの
if (!class_exists('Mongo')) でエラー(141行目)
で動作しない。
ただし、簡易的なテストプログラムでMongoDBの動作は確認済みなので
インストールには問題がない様子・・・
(FuelPHPを使用しないプログラムでの動作)
【対策(解決済み)】
PHP7のドライバとPHP5で互換性がないみたい・・
以下のアダプタをインストールしないとだめだったようです。
https://github.com/alcaeus/mongo-php-adapter
composer require alcaeus/mongo-php-adapter
FuelPHP1.9では、アダプタなしになるだろうか・・・