Php

編譯 PHP 擴展時出錯

  • March 29, 2018

我正在嘗試安裝一個用 c 編寫的 php 擴展並使用 MongoDB c 驅動程序。

在過去的兩天裡,我一直在嘗試編譯和安裝擴展,但是,我遇到了同樣的錯誤。

/usr/bin/ld: /usr/local/lib/libmongoc.a(bson.o): relocation R_X86_64_32S against `bson_numstrs' can not be used when making a shared object; recompile with -fPIC
   /usr/local/lib/libmongoc.a: could not read symbols: Bad value
   collect2: ld returned 1 exit status
   make: *** [thaps.la] Error 1

完整的日誌可以在 Pastbin 中找到:http: //pastebin.com/iqpqHYpm

我要安裝的擴展位於 bitbucket:https ://bitbucket.org/heinep/thaps

我正在使用 php 5.4 和 zend 2.4 apache 2.2 MongoDB c 驅動程序 v0.5 ubuntu 12.04 64bits

您需要安裝 MongoDB 伺服器,而不是c驅動程序。還要安裝mongodb-dev軟體包,因為可能需要額外的開發標頭檔/文件。如果您需要額外的幫助;mongodb.org上的文件提供了在 UbuntuPHP 驅動程序上安裝的詳細說明。

sh ~> sudo apt-get install mongodb-server mongodb-dev
sh ~> sudo pecl install mongo

php5-mongo也可以通過 Ubuntu 的包管理器獲得。

sh ~> sudo apt-get install php5-mongo

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