Просто уйдя от сообщения об ошибке, я могу сказать, что это проблема, связанная с архитектурой (например, см. this). XAMPP по-прежнему 32-битный только в соответствии с this question on their FAQ, и PECL будет пытаться строить расширения как 64-битные по умолчанию.
Однако оба MAMP и MAMP Pro входят как в 32, так и в 64-разрядные двоичные файлы с 2,0 1.
Однако вопрос заключается в том, имеет ли ваш Mac 64-разрядный процессор и работает ли он по 64-разрядной ОС X по умолчанию. This Apple support article предлагает руководство по определению того, какой Mac у вас есть. Например, если у вас Macbook Pro с 2008 по 2010 год, он может запускать 32-битное ядро по умолчанию, но (см. Статью) вы можете установить его для запуска 64-битного ядра.
Ваш быстрый путь к вашей цели - это, вероятно, построить mongo.so для 32-битных. Эта статья о using MAMP/PECL to install PHP extensions говорит, что с PECL это должно быть так просто, как это:
CFLAGS="-arch i386" ./pecl install
Если это не работает, вы можете попробовать ручную установку, проходя 32-битовые флаги для настройки. См. this question for memcached.so installation для методов, которые, вероятно, будут работать для вас.
Это должно работать (на основе выше и manual installation instructions for the Mongo driver on php.net):
tar zxvf mongodb-mongodb-php-driver-<commit_id>.tar.gz
cd mongodb-mongodb-php-driver-<commit_id>
phpize
MACOSX_DEPLOYMENT_TARGET=10.5 CFLAGS="-arch i386 -arch x86_64 -g -Os -pipe -no-cpp-precomp" CCFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" CXXFLAGS="-arch i386 -arch x86_64 -g -Os -pipe" LDFLAGS="-arch i386 -arch x86_64 -bind_at_load" ./configure
sudo make install
... затем обратитесь к ссылке php.net выше для остальных шагов в руководстве по установке (т.е. добавление расширения в РНР .ini).
Битность ядра не затрагивает пользователя в Mac OS X вообще. Вы можете запускать 64-разрядные приложения на 32-битном ядре и наоборот. – duskwuff
@duskwuff Что вы сказали правильно. Однако, что вы не можете сделать, используется 32-разрядный MAMP с 64-разрядным расширением. Вы можете запустить 32-разрядный MAMP с 32-битным 'mongo.so', но использование 64-битного' mongo.so' не будет работать. – natchiketa