【发布时间】:2019-01-13 23:52:21
【问题描述】:
我有一个项目正在更新基于 Zend Framework 1.12 和 MongoDB 2.4 构建的非常旧的应用程序。最近 PHP 升级到 5.6 现在又升级了 请求到 MongoDB 2.6。服务器也很旧(Redhat 6.9) 我没有准备升级到更高版本的服务器操作系统。 MongoDB 位于单独的服务器上(与应用程序文件不同)。
这是我到目前为止所做的:
建立了一个基于 GUI 的虚拟机(Windows 10 主机、Centos 7 来宾、PHP 5.6 和 mongo 相同)。 安装 MongoDB 大部分都很顺利,除了 MongoDB PHP 驱动程序。 应用程序代码抛出“找不到类 Mongo”错误,因为旧代码库是通过
new Mongo($connStr)实例化的,即使尝试new MongoClient()也不起作用(给出了相同的类未找到错误)。 mongodb.so 文件放置在适当的位置,并通过 /etc/php.ini 文件正确提及 关于 extension_dir 和 extension=mongodb.so。 使用 phpinfo() 我验证了扩展mongodb.so加载正确,但也许 编译了错误的 PHP 驱动程序。 我无法获得高于 1.12 的已安装驱动程序版本,这可能是由于 编译驱动程序的各种尝试。试图重用复制了相同应用程序结构的 Vagrant & Virtualbox VM,但遗憾的是我的操作系统 (Solus) 不再启动此 VM,它拒绝像几个月前那样挂载文件夹。所以这也是一个死胡同。我回来了 到 Windows 作为主机 GUI VM...不断尝试不同的建议,但没有更进一步。
我已经对此进行了大量研究,但可以使用一些社区指导。 也许最好的方法是将 MongoDB 从 VM 中完全清除并重试?既然是7以下的PHP,可能是我安装错了.. php-driver for mogodb wont't compile
此链接MongoDB 2.6 Update Error 讨论了删除。
期望的结果是 PHP 5.6.33 与 Zend Framework 1.12 和 MongoDB 2.6.latest
希望应用程序中的重新编码量最少,但此时 我没有独立的 PHP 脚本(在 Zend 应用程序之外)连接到测试 DB/Collection 上的 MongoDB。
我已经预算了足够的时间来修复代码,但现在我正在旋转。
任何帮助/建议表示赞赏。提前致谢。
【问题讨论】:
-
这里只是一个更新,我完全清除了所有 mongo 和 mongodb 文件等等。在使用 pecl install mongo(不是 pecl install mongodb)时,我注意到有一个 SSL 错误阻止了正确的编译。通过安装缺少的库解决了它,然后再次运行
pecl install mongo并获得了预期的结果。 -
您可以添加解决方案作为您自己问题的答案并接受它。
标签: mongodb zend-framework redhat php-5.6