Mongodb

MongoDB:無法在 PHP 上傳入驅動程序

  • December 30, 2013

我正在嘗試使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 位的。

我還檢查了二進製文件是否有任何問題,例如phpizeand php-config,但一切似乎都很好……

我真的不知道該怎麼辦,有人有任何線索嗎?


正如voretaq7MadHatter所指出的,這就是我所做的:

  1. 下載 PHP 5.5.7 並用
    ./configure --with-apxs2=/usr/local/apache2/bin/apxs;
  2. 下載了mongo驅動的master分支,按照提示使用預設配置編譯
  3. 在 php.ini 中包含副檔名
    extension = mongo.so
  4. php -v了,得到了我之前說的奇怪的錯誤;
  5. 檢查 PHP 和驅動程序是否以 64 位編譯,它們是;
  6. 檢查是否phpize以及php-config是否是在步驟 1 中較早安裝的那些,它們是;
  7. 大喊他媽的這個狗屎並尋求幫助。
  8. 意識到我可以嘗試使用 1.4.5 驅動程序版本。*砰!*完成,現在一切正常。

此問題僅在最新版本上發生。

我剛剛嘗試了1.4.5,一切都很好!

引用自:https://serverfault.com/questions/563867