環境:ubuntu php 5.6
在安裝php-mongo擴展時,拋出此錯誤
安裝php擴展mongo的步驟:
1.下載擴展包
wget http://pecl.php.net/get/mongo-1.5.2.tgz
注意下載的mongo擴展的版本需要 看mongd的版本和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即可解決。