web-dev-qa-db-ja.com

php70-mongoインストールの教義/ mongodb-odmが失敗する

Doctrine/mongodb-odm [1.0.5]をcomposerにインストールしようとしましたが、ドロップしました

  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拡張機能はすでにインストールされています

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

この場合、何がうまくいかなかったのですか?

10
deroccha

PHP7では、@ xabenが述べたようにmongodb拡張子があります。これは、mongodbをサポートするまでdoctrineで使用できますが、追加のライブラリをインストールすることで使用できます https://github.com/alcaeus/mongo-php-adapter ==

Composerを介した最初のインストール:

composer require alcaeus/mongo-php-adapter

後でドクトリンをインストールします。私の場合は非常にうまく機能します。

34
malcolm

PHPにはMongoDB用に2つの拡張機能があります。

  1. http://php.net/manual/en/book.mongo.php にあるレガシーのもの
  2. 現在のもの http://php.net/manual/en/set.mongodb.php

「doctrine/mongodb-odm」の場合、レガシーのもの「mongo」が見つかることを期待していますが、インストールしたのは新しいもの「mongodb」です。

レガシー拡張機能を使用するには、php <= 5.6を使用する必要があります。php7の場合、mongodbのみが使用可能です。

6
xaben

私は問題を抱えていましたが、php5.6とmysqlを使用してsymfony3.1をインストールして構成します。インストーラーmongodbが必要になった後、7.1を更新します。

問題composer.json:

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

変化する:

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