Я устанавливаю 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, если он используется как модуль)