Установка Mongodb с лампой на Ubuntu (Linux) - PullRequest
3 голосов
/ 22 февраля 2012

Я выполнил следующие шаги для установки php-драйверов mongo с lampp.

http://abstract2paradox.wordpress.com/2012/01/26/adding-mongo-db-driver-to-xampp/

При запуске lampp выдается следующая ошибка

Предупреждение: PHP Startup: невозможно загрузить динамическую библиотеку '/opt/lampp/lib/php/extensions/no-debug-non-zts-20090626/mongo.so' - / opt / lampp / lib / php / extensions / no-debug-non-zts-20090626 / mongo.so: неправильный класс ELF: ELFCLASS64 в поле Неизвестно в строке 0

Есть идеи?

Благодарю вас

Ответы [ 2 ]

6 голосов
/ 22 февраля 2012

Это означает, что ваш PHP скомпилирован в 32-битном режиме, но монго расширение как 64-битный режим.Я полагаю, что скомпилированный PHP от Apple также работает в 32-битном режиме, это можно проверить с помощью:

php -r 'echo PHP_INT_MAX, "\n";'

Если это показывает

9223372036854775807
, то вы работаете на 64-битной платформе.

Теперь в вашем случае вам необходимо убедиться, что вы скомпилировали расширение MongoDB с 32-битной архитектурой.С http://artur.ejsmont.org/blog/content/how-to-build-mongodb-pecl-extension-in-32bit-for-php-52-on-macosx-snow-leaopard Я полагаю, что вы можете сделать это с:

pecl download mongo
tar -xvzf mongo-1.2.7.tgz
cd mongo-1.2.7

CFLAGS="-m32"

phpize
./configure
make
make install
0 голосов
/ 02 марта 2012

Проблема была, как обрисовано в общих чертах Дериком выше. Несмотря на то, что проблема была решена, я скачал 32-битную версию Ubuntu OS и запустил ее как виртуальную машину на моем компьютере, используя vmware. Позже следовал раздел «Ручная установка» на этой странице для установки драйвера php, и все это работало. Получил драйверы php от github, как указано на странице.

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

...