试图安装MongoDBBundle For Symfony。使用作曲家但无法解决

时间:2013-07-29 13:33:10

标签: php mongodb symfony composer-php

Anthonys-MacBook-Air:activebook numerical25$ php composer.phar update
PHP Warning:  Module 'openssl' already loaded in Unknown on line 0

Warning: Module 'openssl' already loaded in Unknown on line 0
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - doctrine/mongodb-odm 1.0.0-BETA6 requires doctrine/mongodb >=1.0.0-beta1,<1.1-dev -> satisfiable by doctrine/mongodb[1.0.0, 1.0.1, 1.0.2, 1.0.3].
    - doctrine/mongodb-odm 1.0.0-BETA7 requires doctrine/mongodb 1.0.* -> satisfiable by doctrine/mongodb[1.0.0, 1.0.1, 1.0.2, 1.0.3].
    - doctrine/mongodb-odm 1.0.0-BETA8 requires doctrine/mongodb 1.0.* -> satisfiable by doctrine/mongodb[1.0.0, 1.0.1, 1.0.2, 1.0.3].
    - 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].
    - doctrine/mongodb-odm 1.0.x-dev requires doctrine/mongodb 1.0.* -> satisfiable by doctrine/mongodb[1.0.0, 1.0.1, 1.0.2, 1.0.3].
    - doctrine/mongodb 1.0.3 requires ext-mongo >=1.2.12,<1.5-dev -> the requested PHP extension mongo has the wrong version (1.5.0dev) installed.
    - doctrine/mongodb 1.0.2 requires ext-mongo >=1.2.12,<1.4-dev -> the requested PHP extension mongo has the wrong version (1.5.0dev) installed.
    - doctrine/mongodb 1.0.1 requires ext-mongo >=1.2.12,<1.4-dev -> the requested PHP extension mongo has the wrong version (1.5.0dev) installed.
    - doctrine/mongodb 1.0.0 requires ext-mongo >=1.2.12,<1.4-dev -> the requested PHP extension mongo has the wrong version (1.5.0dev) installed.
    - doctrine/mongodb-odm 1.0.0-BETA5 requires doctrine/mongodb 1.0.0-BETA1 -> no matching package found.
    - doctrine/mongodb-odm 1.0.0-BETA4 requires doctrine/mongodb 1.0.0-BETA1 -> no matching package found.
    - Installation request for doctrine/mongodb-odm 1.0.*@dev -> satisfiable by doctrine/mongodb-odm[1.0.0-BETA4, 1.0.0-BETA5, 1.0.0-BETA6, 1.0.0-BETA7, 1.0.0-BETA8, 1.0.0-BETA9, 1.0.x-dev].

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

我不知道这意味着什么

这就是我在symfony composer.json文件中的内容

"require": {
    "php": ">=5.3.3",
    "symfony/symfony": "2.3.*",
    "doctrine/orm": ">=2.2.3,<2.4-dev",
    "doctrine/doctrine-bundle": "1.2.*",
    "twig/extensions": "1.0.*",
    "symfony/assetic-bundle": "2.3.*",
    "symfony/swiftmailer-bundle": "2.3.*",
    "symfony/monolog-bundle": "2.3.*",
    "sensio/distribution-bundle": "2.3.*",
    "sensio/framework-extra-bundle": "2.3.*",
    "sensio/generator-bundle": "2.3.*",
    "incenteev/composer-parameter-handler": "~2.0",
    "doctrine/mongodb-odm": "1.0.*@dev",
    "doctrine/mongodb-odm-bundle": "3.0.*@dev"
},

3 个答案:

答案 0 :(得分:5)

你的问题是mongo-php扩展。 doctrine/mongodb程序包的最新稳定版本不支持mongodb驱动程序的已安装版本1.5.0dev。将其降级到最新的1.4版本。另外,最好在composer.json中引用beta包而不是dev:

"require": {
    "doctrine/mongodb-odm": "1.0.*@beta",
    "doctrine/mongodb-odm-bundle": "3.0.*@beta"
}

因此,minimum-stability可以保留stable

答案 1 :(得分:1)

因为在你的composer.json中你有这样的一行:“minimum-stability”:“dev”, 而你正在尝试导入MongoDBBundle的beta版本

尝试使用require部分中的那些行:

"doctrine/mongodb-odm": "1.0.*@dev",
"doctrine/mongodb-odm-bundle": "3.0.*@dev"

答案 2 :(得分:-2)

我认为您需要从php.ini文件中启用php_mongo.dll。

如果在php.ini文件中找不到,则必须添加

extension = php_mongo.dll

在php ini文件中,然后从中下载php_mongo.dll http://pecl.php.net/package/mongo/1.5.5/windows  并将其保存在php / ext /

然后重启apache 现在它不会给出任何错误。