从 MongoDB 2.4 升级到 2.6 Class 未找到

Upgrading from MongoDB 2.4 to 2.6 Class not found

我有一个项目正在更新基于 Zend Framework 1.12 和 MongoDB 2.4 构建的非常旧的应用程序。最近PHP升级到5.6,现在升级 要求 MongoDB 2.6。服务器也很旧(Redhat 6.9) 我没有升级到更高版本服务器的规定 OS。 MongoDB 位于单独的服务器上(与应用程序文件不同)。

这是我到目前为止所做的:

我对此进行了大量研究,但可以使用一些社区指导。 也许最好的方法是从 VM 中完全清除 MongoDB 并重试?因为是7以下的PHP,可能是我安装错了。。 php-driver for mogodb wont't compile

此 link MongoDB 2.6 Update Error 讨论删除。

期望的结果是 PHP 5.6.33 with Zend Framework 1.12 和 MongoDB 2.6.latest

希望应用程序中的重新编码量最少,但此时 在测试 DB/Collection.

时,我没有独立的 PHP 脚本(在 Zend 应用程序之外)连接到 MongoDB

我已经预留了足够的时间来修复代码,但现在我手忙脚乱。

任何 help/advice 感谢。提前致谢。

  • 我意识到我做错了什么。我从 Github 编译(失败)了一个驱动程序版本,该版本用于 PHP7(不是 5.6) 并因此安装了 mongodb.so - 所以它必须被清除。
  • 清除 mongodb 后,我重新安装了 mongo 服务器,但是对于 PHP 驱动程序,我决定使用 Pecl。
  • 编译驱动程序时,由于缺少 SSL 库而发生错误。你会 想要检查您是否拥有以下库(您可能已经拥有 他们),如果没有,那么

sudo yum install libcurl4-openssl-dev sudo yum install openssl-dev sudo yum install libssl-dev sudo yum install libsslcommon2-dev sudo yum install pkg-config 然后...完成所有这些后

sudo pecl install mongo

  • 编译完成后(没有错误)我注意到它已经创建了驱动程序 mongo.so 并将其放置在目录 /usr/lib64/php/modules 中,这很好。
  • 按照建议,确保 extension=mongo.so 已添加到 /etc/php.ini
  • 重新启动 Apache 服务器,并在 phpinfo();
  • 中检查 mongo 支持和版本号
  • 在命令行上,您可以执行以下操作来验证.. php --ri mongo 查看安装了哪个 mongo php 驱动程序。它可能会打印...

mongo Mongo Support => enabled Version => 1.6.16 SSL Support => enabled

要查看安装的 mongodb 版本,键入 mongod --version 可能会打印...

db version v2.6.12

  • 如果您没有重新安装 mongodb 服务器 (mongod),请安装它并 运行 它(或者如果您使用 mongo,尝试使用独立测试脚本或您的应用程序连接到 Mongo