2014-06-04 4 views
7

Я пытаюсь использовать rockmongo. После установки я не могу его использовать. Он говорит: «Чтобы сделать все правильно, необходимо установить модуль php_mongo. Здесь для документов установки на PHP.net.»PHP не может загрузить динамическую библиотеку (mongo.so)

я уже установленное расширение драйвера MongoDB через sudo pecl install mongo.

locate mongo показывает /usr/lib/php5/20090626+lfs/mongo.so

Однако php -v показывает несколько предупреждений (которые я думаю, связано с Монго)

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 ----- 
+0

возможно дубликат [mongo.so:> неопределенный символ: PHP \ _json \ _encode в Unknown в строке 0. После установки драйвера для Монго php] (http://stackoverflow.com/questions/22952994/mongo-so-undefined-symbol-php-json-encode-in-unknown-onlineline-0-after-instal) –

+0

Я уже пробовал решения упомянутый там. Не помогло. – Kanav

+0

Измените свой вопрос, чтобы включить файл mongodb.ini. Подсказка: 'Ожидание ']' в /etc/php5/cli/conf.d/mongodb.ini в строке 3' –

ответ

6

Я решил эту проблему, используя версию 1.1.9 mongodb. Сначала удалите текущую версию MongoDB, а затем установить версию 1.1.9:

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

Неужели это все еще uptodate? – rottenoats

0

Добавьте полный путь к расширению mongo.so в mongodb.ini:

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

[mongo] Также должны быть написаны точно так НЕ \[mongo\].

Не забудьте перезагрузить/перезагрузить веб-сервер, чтобы загрузить новую конфигурацию.

Вы можете проверить, что все в порядке с:

php -i | grep mongo 
+0

i отредактировал '/ etc/php5/apache2/php.ini' и изменил' extension = mongo' на 'extension =/usr/lib/php5/20090626 + lfs/mongo.so'. Кроме того, изменен '\ [mongo \]' на '[mongo]' в 'etc/php5/apache2/conf.d/mongodb.ini'. Перезапущенный апач. Еще одна ошибка – Kanav

+0

Вы изменили расширение = mongo в 'php.ini', но ошибка находится в' mongodb.ini'. Удалите строку 'extension = ..' из php.ini и измените ее в файле 'mongodb.ini'. –

+0

Такая же ошибка. 'PHP -V' показывает ' PHP Предупреждение: PHP Startup: Монго: Не удалось инициализировать модуль модуль собран с модулем API = 20090626 PHP скомпилирован с модулем API = 20100525 Эти параметры должны соответствовать в Unknown в строке 0 ' – Kanav

1

Мой PHP версия 7.0, но он должен работать версии 5.x тоже.

Если у вас есть это в файле /etc/php/7.0/mods-available/mongo.ini

extension=mongodb.so 

Комментарий что линия. После этого перезапустите php и он должен работать.

Смежные вопросы