pecl install mongo - продовжує компілювати неправильний API модуля


9

Робота з Ubuntu 12.04 тут, nginx та php5-fpm

У мене було монго добре працювати над php 5.3, потім я додав ondrej / php5 ppa та оновив до php5.4. Він зберігав розширення GD та CURL, але не монго. Я знову додав рядок у файл php.ini, і нічого. Тоді я ввімкнув помилки запуску і отримав це:

PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/mongo.so' - /usr/lib/php5/20100525/mongo.so: cannot open shared object file: No such file or directory

Отже, find -name 'mongo.so'дивна здогадка, я зробив і перемістив файл з 20090626 / до 20100525 / ..., що призвело до цієї помилки:

PHP Startup: mongo: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525
These options need to match

Потім я зробив pecl uninstall mongoі pecl install mongo- який створив новий файл mongo.so ще в 20090626 /

Я якось новачок у всьому цьому, тому сподіваюся, що це сліпа легка помилка виправити! Мені просто потрібно повернути монго до роботи.

Відповіді:


12

Моя здогадка була б чи то:

  • pecl install mongoнасправді встановлює заздалегідь вбудований двійковий файл (що було б справді німим, але не було б настільки дивно); або
  • Ви все ще отримали старий php5-devпакет із вашої установки 5.3, що сидить навколо, і peclзнаходить і використовує його замість версії 5.4. Погляньте на список пакунків, пов’язаних із PHP ( dpkg -l '*php*'), і перевірте, чи залишилось ще 5,3 пакунків, і оновіть їх.

Я просто відповідав на це власним питанням! Дякую!
kavisiegel

То хто це був?
жіноча

2
Довелося оновити php5-dev, видалити Монго, а потім перевстановити.
kavisiegel

що прекрасно працювало для мене
Олівер Байес-Шелтон

2

Чудові розуми думають однаково, по-живому розміщували моменти після того, як я зрозумів, що відбувається. Його відповідь правильна і перед моєю, тому я прийму як відповідь, але для подальшого ознайомлення рішення було таке:

apt-get update
apt-get install php5-dev
pecl uninstall mongo
pecl install mongo
/etc/init.d/php5-fpm restart

І звичайно, mongo.so вже був у php.ini таким чином, щоб pecl не видалив його, так що це полегшило оновлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.