web-dev-qa-db-ja.com

symfony2にmongodb doctrine with composer

私は公式に従ってきました ドキュメント

composer updateを実行すると、次のエラーが発生します:インストール可能なパッケージのセットに要件を解決できませんでした。

  Problem 1
    - doctrine/mongodb 1.0.4 requires ext-mongo >=1.2.12,<1.6-dev -> the requested PHP extension mongo is missing from your system.
    - doctrine/mongodb 1.0.3 requires ext-mongo >=1.2.12,<1.5-dev -> the requested PHP extension mongo is missing from your system.
    - doctrine/mongodb 1.0.2 requires ext-mongo >=1.2.12,<1.4-dev -> the requested PHP extension mongo is missing from your system.
    - doctrine/mongodb 1.0.1 requires ext-mongo >=1.2.12,<1.4-dev -> the requested PHP extension mongo is missing from your system.
    - doctrine/mongodb 1.0.0 requires ext-mongo >=1.2.12,<1.4-dev -> the requested PHP extension mongo is missing from your system.
    - doctrine/mongodb-odm 1.0.0-BETA9 requires doctrine/mongodb 1.0.* -> satisfiable by doctrine/mongodb[1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4].
    - Installation request for doctrine/mongodb-odm 1.0.0-BETA9 -> satisfiable by doctrine/mongodb-odm[1.0.0-BETA9].

実行するとphp -m mongo拡張機能が見つかりませんが、サーバーは実行されており、PHPでMongoを使用できます。問題が何であるかを誰かが知っていますか? doctrineがmongo拡張機能を見つけることができないとは思えません。ありがとう!

12
Aysennoussi

それを私が直した !予想通り、拡張機能が原因だったので、私と同じ問題に直面した場合の手順は次のとおりです:the requested PHP extension mongo is missing from your system.

  1. コマンドを実行します:php --ini、解析されたすべての構成ファイルが表示されます!私の場合、PHP-fpmを使用しています。必要なphp.iniファイルはfpmフォルダー内だけだと思いましたが、CLIフォルダー内にphp.iniファイルがあり、サーバーにどのモジュールがロードされているかを通知するのはこのフォルダーです。 、そしてそれはdoctrineが拡張子を読み取るのとまったく同じファイルです。
  2. CLI/php.iniを開き、この行を最後に追加しますextension=mongo.so
  3. 再起動PHP:service php5-fpm restart

それでおしまい!

19
Sekai

oSXの場合:

brew install php56-mongo

エラーが発生した場合:エラーメッセージを注意深く読み、それに従ってコマンドを再実行します。

ソース:

http://php.net/manual/en/mongo.installation.php#mongo.installation.osx

1
Dung

Linux

PHPのMongoDB拡張機能をインストールするには、次のコマンドを実行します。

Sudo apt-get install php-mongo

参照: Mongodbをインストールする最も簡単な方法PHP Ubuntu 13.10(saucy)の拡張機能?

0
kenorb