Назад | Перейти на главную страницу

MongoDB: невозможно загрузить драйвер на PHP

Я пытаюсь сделать mongo-php-драйвер работать с PHP 5.5.7 на OS X 10.9.1 но я зашел в тупик, перепробовал все, что смог найти, и ничего не работает ...

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

Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-zts-20121212/mongo.so' - dlopen(/usr/local/lib/php/extensions/no-debug-zts-20121212/mongo.so, 9): Symbol not found: _core_globals
  Referenced from: /usr/local/lib/php/extensions/no-debug-zts-20121212/mongo.so
  Expected in: flat namespace
 in Unknown on line 0

Я проверил проблемы безопасности потоков и архитектуры, но все в порядке, и расширение, и PHP являются потокобезопасными и 64-битными.

Я также проверил, нет ли проблем с двоичными файлами, например phpize и php-config, но вроде все нормально ...

Я действительно не знаю, что делать, кто-нибудь знает?


Как указал voretaq7 и Безумный Шляпник вот что я сделал:

  1. Скачал PHP 5.5.7 и скомпилировал
    ./configure --with-apxs2=/usr/local/apache2/bin/apxs;
  2. Загрузил мастер ветвь драйвера mongo и скомпилирована с конфигурацией по умолчанию как проинструктирован;
  3. Включено расширение в php.ini:
    extension = mongo.so;
  4. Ран php -v и получил странную ошибку, о которой говорил ранее;
  5. Проверено, компилируются ли PHP и драйвер в 64 бита, да;
  6. Проверено, если phpize и php-config были те, которые были установлены ранее на шаге 1, они были;
  7. Кричал ебать это дерьмо и попросил помощи.
  8. Понял, что могу попробовать с версией драйвера 1.4.5. БАМ! готово, теперь все работает.

Эта проблема возникает только на последняя версия.

Я просто пробовал с 1.4.5 и все прошло отлично!