2016-05-02 12 views
9

Ich versuche Lehre/mongodb-odm [1.0.5] über Komponisten zu installieren, aber fällt mirphp70-Mongo installieren Lehre/mongodb-odm nicht

Problem 1 
    - doctrine/mongodb 1.3.0 requires ext-mongo ^1.5 -> the requested PHP extension mongo is missing from your system. 
    - doctrine/mongodb 1.2.2 requires ext-mongo ^1.2.12 -> the requested PHP extension mongo is missing from your system. 
    - doctrine/mongodb 1.2.1 requires ext-mongo ^1.2.12 -> the requested PHP extension mongo is missing from your system. 
    - doctrine/mongodb 1.2.0 requires ext-mongo ^1.2.12 -> the requested PHP extension mongo is missing from your system. 
    - doctrine/mongodb-odm 1.0.5 requires doctrine/mongodb ~1.2 -> satisfiable by doctrine/mongodb[1.2.0, 1.2.1, 1.2.2, 1.3.0]. 
    - Installation request for doctrine/mongodb-odm ~1.0.5 -> satisfiable by doctrine/mongodb-odm[1.0.5]. 

Mongo Erweiterung bereits installiert ist

php -i | grep mongo 

/usr/local/etc/php/7.0/conf.d/ext-mongodb.ini 
mongodb 
mongodb support => enabled 
mongodb version => 1.1.6 
mongodb stability => stable 
libmongoc version => 1.3.5 
mongodb.debug => no value => no value 

was ist in diesem Fall falsch gelaufen?

Antwort

28

Auf PHP7 haben Sie mongodb Erweiterung als @xaben erwähnt. Sie können dies mit Lehre verwenden, bis es mongodb unterstützen, sondern durch zusätzliche Bibliothek Installation https://github.com/alcaeus/mongo-php-adapter

Erster über Komponisten installieren:

composer require alcaeus/mongo-php-adapter 

und spätere Lehre installieren. Es funktioniert sehr gut in meinem Fall.

+1

Danke, es funktioniert sehr gut in meinem Fall! –

+1

Diese Lösung wird auch in offiziellen Release Notes empfohlen http://www.doctrine-project.org/2016/02/16/doctrine-mongodb-odm-release-1.0.5.html – edigu

+0

Funktioniert wunderbar auf PHP 7.1 mit Symfony 3.2 und Doktrin ODM 1.1 –

5

PHP hat 2 Erweiterungen für MongoDB:

  1. Das Erbe eines bei http://php.net/manual/en/book.mongo.php gefunden
  2. Die aktuelle http://php.net/manual/en/set.mongodb.php

Im Falle von "Lehre/mongodb-odm" zu finden erwartet das alte "mongo" aber was du installiert hast ist das neuere "mongodb".

Um die Legacy-Erweiterung verwenden zu können, müssen Sie php < = 5.6 verwenden, für php 7 ist nur mongodb verfügbar.

+0

Vielen Dank für Ihr Feedback. Ich folgte der Anweisung, neu zu installieren, aber immer noch die gleiche Ausgabe. – deroccha

+0

OMG, ich war im Begriff, verrückt zu werden, du hast mir das Leben gerettet! –

0

ich das Problem hatte, aber Installation und Konfiguration symfony 3.1 mit PHP 5.6 und MySQL, nach Bedarf Installateur mongodb, so udpate 7.1

Problem composer.json:

"config": { 
    "platform": {"php": "5.6"} 
} 

Wechsel:

"config": { 
    "platform": {"php": "7.1"} 
}