【问题标题】:MongoDB: unable to load driver on PHPMongoDB:无法在 PHP 上加载驱动程序
【发布时间】:2013-12-28 03:58:35
【问题描述】:

我正在尝试使 mongo-php-driverOS X 10.9.1 上与 PHP 5.5.7 一起工作,但我走到了死胡同,我试过了我可能找到的所有东西,但没有任何效果......

一切都编译得很好,但是 PHP 没有加载扩展并给出了一个非常奇怪的错误:

Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-zts-20121212/mongo.so' - dlopen(/usr/local/lib/php/extensions/no-debug-zts-20121212/mongo.so, 9): Symbol not found: _core_globals
  Referenced from: /usr/local/lib/php/extensions/no-debug-zts-20121212/mongo.so
  Expected in: flat namespace
 in Unknown on line 0

我检查了线程安全和架构问题,但一切都很好,扩展和 PHP 都是线程安全的和 64 位的。

我还检查了二进制文件是否有任何问题,例如 phpizephp-config,但一切似乎都很好......

我真的不知道该怎么办,有人有什么线索吗?

【问题讨论】:

    标签: php macos mongodb osx-mavericks php-extension


    【解决方案1】:

    gibatronic,据我了解,您已经为 5.5.7 编译了此驱动程序。我尝试使用在线提供的现有预编译二进制文件(并发现了最后一个兼容的 php 版本)

    【讨论】:

    • 是的...不同的方式来实现同样的事情。这就是为什么我很容易迷失在这些事情上!
    【解决方案2】:

    这个问题只发生在lastest version

    我刚刚尝试使用1.4.5,一切顺利!

    【讨论】:

    • 你是怎么做到的?我使用 PHP 5.5.3 运行 osx 1.6.8、MAMP 2.2、mongo(驱动程序)1.4.5 稳定版(通过 PECL 安装获得)并获得 API 不兼容:使用模块 API=20090626 编译的模块 PHP 使用模块 API=20121212 编译
    • @ljgww 您可能会遇到两种不同的 API,因为在编译驱动程序时,它使用 OS X 捆绑的原始 PHP 中的 phpize 和 php-config。尝试运​​行 which phpize,它可能没有指向到 MAMP 提供的那个...
    • 我必须将 php 降级到 5.3.27 才能使其工作(兼容 api)。幸运的是,MAMP 带有许多不同的 php 版本。也试过Windows版本的驱动程序,它工作得更好。但是有比 Mac 更多的预编译二进制文件。为最新的 API 发布适用于 mac 的二进制文件会有很大帮助。
    • 奇怪... 1.4.5 驱动程序在 PHP 5.5.7 上对我来说运行良好,但我使用了 phpize,我从未尝试过 pecl
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 2012-12-04
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多