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

本文详细介绍了在Ubuntu环境下,解决PHP mongo扩展加载失败的问题,包括下载、编译、安装扩展包,以及如何正确配置php.ini文件加载mongo.so和json.so,确保PHP能够正常连接MongoDB。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值