PHP无法加载动态库(mongo.so)

时间:2014-06-04 06:11:57

标签: php mongodb

我试图使用rockmongo。安装后,我无法使用它。它说" 为了使事情正确,你必须安装php_mongo模块。这里是PHP.net上的安装文档。"

我已经通过sudo pecl install mongo安装了mongoDB驱动程序扩展。

locate mongo显示/usr/lib/php5/20090626+lfs/mongo.so

但是,php -v显示的警告很少(我认为这与mongo有关)

PHP:  syntax error, unexpected $end, expecting ']' in /etc/php5/cli/conf.d/mongodb.ini on line 3
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525+lfs/mongo.so' - /usr/lib/php5/20100525+lfs/mongo.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP 5.4.28-1+deb.sury.org~precise+1 (cli) (built: May  5 2014 09:39:26) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

我打开了/usr/lib/php5/,发现还有另一个目录( 20090626 + lfs ),其中包含mongo.so。

我尝试了各种在线教程,但没有任何帮助。

修改:这是我的mongodb.ini

;----- start -----
extension=mongo.so
\[mongo\]
; If the driver should reconnect to mongo
mongo.auto_reconnect = true
; Whether to allow persistent connections
mongo.allow_persistent = On
; Maximum number of persistent connections (-1 means unlimited)
mongo.max_persistent = -1
; Maximum number of links (persistent and non-persistent, -1 means unlimited)
mongo.max_connections = -1
; Default host for mongo connection
mongo.default_host = www.example.com
; Default port for mongo database
mongo.default_port = 42
; When saving files to the database, size of chunks to split them into
mongo.chunk_size = 1024
; Specify an alternate character to $ to use for special db functions ($set, $push, $exists, etc.)

mongo.cmd = "$"
;----- end -----

5 个答案:

答案 0 :(得分:7)

我使用 php 5 的1.1.9版mongodb驱动程序解决了这个问题。首先卸载当前版本的mongodb,然后安装1.1.9版本:

sudo pecl uninstall mongodb
sudo pecl install mongodb-1.1.9
composer update

答案 1 :(得分:5)

我的php版本是7.0,但它也应该运行5.x版本。

如果您在文件/etc/php/7.0/mods-available/mongo.ini

中有此内容
extension=mongodb.so

评论那条线。之后重新启动php,它应该可以工作。

答案 2 :(得分:1)

对我来说,这很好

sudo apt-get install php7.2-mongodb

更改您的php版本的“ 7.2”

答案 3 :(得分:0)

mongodb.ini中添加mongo.so扩展程序的完整路径:

extension=/usr/lib/php5/20090626+lfs/mongo.so

此外,[mongo]应与非\[mongo\]完全相同。

请勿忘记重新加载/重新启动网络服务器以加载新配置。

你可以检查一切正常:

php -i | grep mongo 

答案 4 :(得分:0)

操作系统更新后,我在运行任何 PHP CLI 时遇到了类似的错误,只需运行“php -v”就产生了错误:

PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php/20131226/mongodb.so'

我检查了文件夹,发现文件“/usr/lib/php/20131226/mongodb.so”存在。所以,我只是对'/etc/php/5.6/cli/php.ini'文件中的“extension=mongo.so”行进行了评论。它解决了我的问题。

当检查 mongo --version 时,它工作正常。