Не удалось запустить PHP с расширением MongoDB (PHP 5.3.8, ОС: Centos 5.4) - PullRequest
0 голосов
/ 09 марта 2012

У меня проблема с запуском PHP-расширений MongoDB

Прочитайте решение в конце этого поста

Я успешно установил его, используя 3 различных метода, но это неНе показывать расширение в phpinfo ()

1 - Использование pecl install mongo (это удалось, и я попросил добавить расширение = mongo.so) в php.ini 2 - Загрузив исходный код и скомпилировав его.3-С момента установки php-pecl-mongo

Все методы выполняются без ошибок, но когда я запускаю phpinfo, я не вижу загруженного расширения Mongo, и при попытке вызвать его просит установить расширение.

Как отладить эту проблему (т. Е. Где я могу найти такие журналы)

И как найти информацию о совместимости Mongo с PHP 5.3.8?

Это то, что яполучить в конце установки:

Примечание: я уверен, что я скопировал файл mongo.so в путь расширения php, так как я использую другое расширение из того же каталога, и ониработаем

Libraries have been installed in:
   /sources/mongo/mongodb-mongo-php-driver-d7c19b8/modules

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,--rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts                                                -20060613/
-bash-3.2# cp /usr/local/lib/php/extensions/no-debug-non-zts-20060613/mongo.so /  

Исправлено -> проблема заключалась в том, что мой php api не был той же версией, что и PHP, т.е. php-devel / php5-devel, необходимый длябыть обновленным.

Ответы [ 2 ]

2 голосов
/ 09 марта 2012

Когда вы компилируете модуль вручную, вы должны скопировать его в путь, который PHP знает, где искать пользовательские модули.

Из командной строки, попробуйте эту команду:

php -i | fgrep -i configure

Вы должны увидеть параметр вроде:

--with-config-file-scan-dir=/bridge/to/nowhere

Убедитесь, что после компиляции модуля выскопируйте модуль из исходного каталога mongo в каталог / bridge / to / nowhere, чтобы PHP мог его забрать.

Если повезет, он должен появиться в списке, когда вы выполните php -m.

0 голосов
/ 09 марта 2012

Что произойдет, если вы измените строку 'extension=mongo.so' в файле php.ini на:

extension=/usr/local/lib/php/extensions/no-debug-non-zts-20060613/mongo.so

При запуске php выдает какое-либо сообщение об ошибке?Если нет, убедитесь, что php -i |grep -e 'Loaded Configuration File' показывает ожидаемый файл php.ini.

Расширение php mongodb должно прекрасно работать с php v5.3.8 (и php-fpm).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...