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

memcache.so, неправильная архитектура в Unknown в строке 0 в MAMP

Я устанавливаю memcache из pecl и получаю memcache.so. После этого я добавляю php.ini, но получаю ошибку.

[12 августа 2010 г. 13:02:24] Предупреждение PHP: запуск PHP: невозможно загрузить динамическую библиотеку '/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626 /memcache.so '- dlopen (/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcache.so, 9): подходящего изображения не найдено. Нашел: /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcache.so: mach-o, но неправильная архитектура в Неизвестном в строке 0

Я попытался

$ файл /Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcache.so

я получил

/Applications/MAMP/bin/php5.3/lib/php/extensions/no-debug-non-zts-20090626/memcache.so: 64-разрядный пакет Mach-O x86_64

Я использую Mac OS x 10.6.4 64 бит

Основной ответ очень помог понять, что я скомпилировал неправильно, но для правильной компиляции модуля я обнаружил, что это сработало для меня:

$ cd your-php-module
$ /Applications/MAMP/bin/php5/bin/phpize
$ ./configure CFLAGS="-arch i386" --with-php-config="/Applications/MAMP/bin/php5/bin/php-config"
$ make
$ make install

Я думаю, это вероятно, потому что php не встроен в 64-битную версию, поэтому вы пытаетесь загрузить 64-битный модуль в 32-битное приложение, и, конечно, это не сработает.
Вы можете проверить это, запустив file на двоичном файле php (или модуле php, если он используется как модуль)