【问题标题】:doctrine mongodb intallation error through composer通过作曲家学说mongodb安装错误
【发布时间】:2012-11-29 16:21:23
【问题描述】:

我正在尝试在本地计算机上通过带有 Zend Framework 2 的作曲家安装 Doctrine MongoDB ODM module,但我不断收到错误消息,指出我的计算机中缺少 PHP 扩展 mango。我正在使用安装了 WAMP 2.2 的 Windows 7 x64。我最初安装的是 1.3.1 的 mongodb php 驱动程序。但是,我发现MongoDB ODM 不支持这个驱动程序,所以我降级到 1.2.12。在我再次尝试安装后,我一直收到同样的错误:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - doctrine/mongodb 1.0.0-BETA3 requires ext-mongo >=1.3.1,<1.4-dev -> the re
quested PHP extension mongo is missing from your system.
    - doctrine/mongodb 1.0.0-BETA2 requires ext-mongo >=1.2.12,<1.3-dev -> the r
equested PHP extension mongo is missing from your system.
    - doctrine/mongodb 1.0.0-BETA1 requires ext-mongo * -> the requested PHP ext
ension mongo is missing from your system.
    - doctrine/doctrine-mongo-odm-module dev-master requires doctrine/mongodb-od
m 1.* -> satisfiable by doctrine/mongodb-odm 1.0.0-BETA4, doctrine/mongodb-odm 1
.0.0-BETA5, doctrine/mongodb-odm 1.0.0-BETA6.
    - doctrine/mongodb-odm 1.0.0-BETA4 requires doctrine/mongodb 1.0.0-BETA1 ->
satisfiable by doctrine/mongodb 1.0.0-BETA1.
    - doctrine/mongodb-odm 1.0.0-BETA5 requires doctrine/mongodb 1.0.0-BETA1 ->
satisfiable by doctrine/mongodb 1.0.0-BETA1.
    - doctrine/mongodb-odm 1.0.0-BETA6 requires doctrine/mongodb >=1.0.0-beta1,<
1.1-dev -> satisfiable by doctrine/mongodb 1.0.0-BETA1, doctrine/mongodb 1.0.0-B
ETA2, doctrine/mongodb 1.0.0-BETA3.
    - Installation request for doctrine/doctrine-mongo-odm-module dev-master ->
satisfiable by doctrine/doctrine-mongo-odm-module dev-master.

我检查了 phpinfo,MongoDB 出现在那里。我成功地使用简单的 php 脚本连接到本地数据库,而无需教义。所以我知道 Wamp 和 mongoDB 工作正常。问题是在整合学说时。非常感谢任何解决此问题的想法或建议。谢谢

【问题讨论】:

  • 检查 mongo 扩展是否在 php -m 中列出
  • 我现在遇到了问题,因为 PECL 下载了 1.4.2 版本,而 packagist 的 DOctrine ODM 预计版本低于 1.4。猜猜我要在没有教义的情况下使用 mongo。

标签: php mongodb zend-framework2 composer-php doctrine-odm


【解决方案1】:

【讨论】:

    【解决方案2】:

    我发现 Composer 在 PHP-CLI 上运行,在 wamp 的情况下,有两个 php.ini 文件: 一个在 php 文件夹中,一个在 apache 文件夹中。 apache 目录中的一个与网络服务器一起使用 这是从 wamp 访问 php.ini 时编辑的内容。我通常从 wamp 编辑我的 php.ini,因此有效 我最终在 apache 中编辑 php.ini。

    composer 中的另一个是访问位于 php 目录中的 php.ini。 这个 php.ini 不知道 mongo 扩展,因此会出现关于缺少扩展的错误。 为了解决这个问题,我在 php 目录下的 php.ini 中添加了 mongodb 的扩展名。 重新启动 wamp 并再次运行作曲家。结果,模块安装成功!

    【讨论】:

    • 我正在使用 MAMP,我在 bin/php/php5.6.7/conf 中找到了 php.ini。虽然我已经在那里定义了 mongo 扩展。不知道你对其他 php.ini 的意思(我在哪里可以找到它),但它仍然没有为我加载......有什么想法吗?
    • @Nicolas。所以你没有在apache文件夹中找到其他的php.ini?
    • 好吧,在 MAMP 中(在 mac 上)我只有 bin/apache2/bin/... 而在那个目录中没有 php.ini。我在 MAMP 根目录中找不到 apache 文件夹。
    猜你喜欢
    • 2016-09-04
    • 2014-01-19
    • 2016-02-21
    • 2013-09-07
    • 2014-10-28
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    相关资源
    最近更新 更多