35187


PHP7でMongoDBを利用したいと考え、手軽に利用できるMAMPで開発したいと思ったのですが上手くいきませんでしたので、ご教授頂きたいと思います。

MAMP:4.1.1  
OS:macOS 10.12.3

こちらのサイトの通りに進めたのですが、下記のようなエラーが出ました。

<http://d.hatena.ne.jp/zebevogue/20120630/1341020573>

$ ./pecl -c ../conf/pear.conf install mongo  
WARNING: "pecl/mongo" is deprecated in favor of "channel:///mongodb"  
pecl/mongo requires PHP (version >= 5.3.0, version <= 5.99.99), installed
version is 7.1.1  
No valid packages found  
install failed

書いてある通りPHP7.1.1が対応していないということだと思います。

どなたか他の方法ででも導入する方法をご教授頂けたら幸いです。

5/31 追記  
$ ./pecl -c ../conf/pear.conf install mongodb  
configure: error: OpenSSL version 1.0.1 or greater required.  
ERROR: `/private/tmp/pear/temp/mongodb/configure --with-php-
config=/Applications/MAMP/bin/php/php7.1.1/bin/php-config' failed

と表示されます。OpenSSLは既に1.0.1以上にしているつもりですが上手く設定できていないようです。

$ openssl version  
OpenSSL 1.0.2k 26 Jan 2017


CC BY-SA 3.0
2017-05-28T12:05:43.653
35095
2017-09-10T16:42:55.233
2017-05-31T11:17:30.113
22675
22675
question
php mongodb mamp
MAMPのPHP7.1.1にMongoDBのドライバーを導入する方法


php.netの[ベンダー固有のモジュール](http://php.net/manual/ja/refs.database.vendors.php)
によると、  
mongo PECL拡張もジールは旧いもので、現在は mongodb PECL拡張モジュールが使われているようです。  
自分の環境のPHPは 7.0 ですが、mongodb モジュールの方はpeclでインストールできました。

[code]

    $ ./pecl -c ../conf/pear.conf install mongodb
    
[/code]


CC BY-SA 3.0
2017-05-28T15:11:15.280
35096
2017-05-28T15:11:15.280
23422
35095
answer


mampを最新にしたのでサックとやってみました。（mongoDBがインストールされて正常に動作している事が前提です。2017/6/1時点の内容です時間が経つと色々変更箇所がでてくるかもしれません。）  
mongodb.soを作成する方法は色々あるのですが今回は
php.net/manual/ja/mongodb.installation.homebrew.phpに出ている方法で、  
最新のMAMP（PHP7.1.1）にMongoDBのドライバーを導入しました。  
1\. PHP7.1 用のmongodb.so作成

[code]

    brew tap homebrew/php
    brew install php71-mongodb
    
[/code]

を実行

  2. php.iniへの設定（私の環境では/Applications/MAMP/bin/php/php7.1.1/conf/php.ini が読み込まれていました。）

インストールの最後に

[code]

    ==> Summary
      /usr/local/Cellar/php71-mongodb/1.2.9: 4 files,.....
    
[/code]

と表示されるのでこのパスを  
インストールフォルダーのパスを指定してphp.iniへ

[code]

    extension=/usr/local/Cellar/php71-mongodb/1.2.9/mongodb.so
    
[/code]

と設定するか、  
mampでphpのバージョンを切り替えても良いようにextensionsフォルダー  
/Applications/MAMP/bin/php/php7.1.1/lib/php/extensions/no-debug-non-
zts-20160303/  
へ mongodb.so をコピーして php.iniへ

[code]

    extension=mongodb.so
    
[/code]

を設定する。

  3. 確認  
mampを再起動後にphpinfoにmongodb追加されていること

動作確認phpサンプル

[code]

    //接続
    $manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
    
    //追加
    $bulk = new MongoDB\Driver\BulkWrite;
    $bulk->insert(['names' => 'yyz', 'add' => 'Hokkaido']);
    $manager->executeBulkWrite('test_db.test2', $bulk);
    
    $filter = [];
    $options = [];
    $query = new MongoDB\Driver\Query($filter, $options);
    $datas = $manager->executeQuery('test_db.test2', $query);
    
    //結果
    foreach ($datas as $d) {
        print_r($d);
    }
    
[/code]


CC BY-SA 3.0
2017-06-01T08:32:37.127
35187
2017-06-01T11:55:06.357
2017-06-01T11:55:06.357
22793
22793
35095
answer