Unable to load dynamic library '/usr/lib/php5/20121212/mongo.so' - /usr/lib/php5/20121212/mongo.so:

環境:ubuntu  php 5.6

在安裝php-mongo擴展時,拋出此錯誤

 

安裝php擴展mongo的步驟:

1.下載擴展包

wget http://pecl.php.net/get/mongo-1.5.2.tgz

注意下載的mongo擴展的版本需要 看mongd的版本和php的版本,具體的可以去查看:

https://docs.mongodb.com/ecosystem/drivers/driver-compatibility-reference/#reference-compatibility-mongodb-php

2.解壓並編譯

tar -zxvf  mongo-1.5.2.tgz
cd mongo-1.5.2.tgz

先查找到phpize和php.config的位置,下面需要使用的

find / -name phpize
find / -name php.config

生成編譯文件:[上面查找phize的位置]

 /usr/bin/phpize

指定編譯參數[上面查找php-config的位置]

./configure --with-php-config=/usr/bin/php-config

編譯&&安裝

make && make install

編譯完畢後,返回mongo.so的位置

如:Installing shared extensions:     /usr/lib/php5/20121212/

3.php加載mongo.so 動態庫

vim /etc/php5/apache2/php.ini 

在文件中添加

extension=/usr/lib/php5/20121212/mongo.so

這時候,報標題的錯誤:

PHP Warning: PHP Startup: Unable to load dynamic library 
'/usr/lib/php5/20121212/mongo.so' - /usr/lib/php5/20121212/mongo.so: undefined symbol: php_json_encode in Unknown on line 0

然後百度查錯,沒發現有意義結果。只得谷歌,這時發現谷歌對查錯很精確

出來的結果是,需要先加載json.so擴展

extension=/usr/lib/php5/20121212/json.so
extension=/usr/lib/php5/20121212/mongo.so

在前面先加載json.so即可解決。


 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章