环境: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即可解决。