【问题标题】:How to install Mongodb PHP extension in Ubuntu 16.04 LTS如何在 Ubuntu 16.04 LTS 中安装 Mongodb PHP 扩展
【发布时间】:2016-08-25 03:28:09
【问题描述】:

我正在运行 Ubuntu 16.04 LTS,我想将 Mongodb 与 PHP 一起使用。为此,我认为sudo apt-get install php5-mongo(对于 Ubuntu 14.04 LTS 来说已经足够了)就足够了,但我错了。我收到这样的错误E: Unable to locate package php5-mongo

我刚刚升级到Ubuntu 16.04 LTS,并希望将mongodbPHP 一起使用。运行PHP版本为PHP Version 7.0.4-7ubuntu2

那么我该怎么做才能解决这个问题呢?

【问题讨论】:

  • 嗯,如果您正在运行 php7,为什么要尝试安装 php5 包?也许是 php7-mongo?
  • @MarcB,我也试过sudo apt-get install php7-mongo这个但没有得到任何积极的结果
  • 所以去看看 16.04lts 存储库并找出包名是什么。甚至像dpkg -L|grep -i mongo

标签: mongodb php-7 ubuntu-16.04


【解决方案1】:

恐怕你现在有点不走运。目前的情况是有两个MongoDB扩展:

  • “php-mongo”,这是“旧”的;此扩展最多支持 PHP 5.*,但不支持 PHP7。仅计划对其进行错误修复;
  • “php-mongodb”,这是“新”的;此扩展支持 PHP5 和 PHP7;

现在的问题是新的与旧的不兼容,因为它们的整个内部结构完全不同。不幸的是,使用新语法的示例很少,因为绝大多数与 Mongo 相关的代码都是使用旧扩展编写的。

就目前而言,如果您已经迁移到 PHP7,您唯一的选择是使用“新”扩展,这反过来意味着您之前的代码将停止工作。

我见过几次尝试创建一个 polyfill 以使这两个迁移成为可能(例如:https://github.com/alcaeus/mongo-php-adapter),但是由于我自己没有尝试过,所以我无法判断它的效果如何。

这个库http://mongodb.github.io/mongo-php-library/ 似乎应该弥补这个空白——在试一试之后,我相信它应该覆盖大部分“旧”功能,而无需过多更新代码。

【讨论】:

    【解决方案2】:

    如果你们中的一些人仍然想对新库使用简单的包装器,如此答案中所述:https://stackoverflow.com/a/48086676/2569789 我正在为此维护一个,你可以在这里找到它:https://github.com/ThomasSquall/PHP7MongoDriver

    今天它只涵盖了一些方法,但我会不断改进它,我希望也愿意贡献:)

    【讨论】:

      猜你喜欢
      • 2016-12-22
      • 2018-11-16
      • 2018-07-20
      • 1970-01-01
      • 2017-06-26
      • 1970-01-01
      • 2017-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多