2009-03-25 3 views
11

У меня возникли проблемы с установкой расширения PHP «memcached» из PECL, хотя я могу успешно установить расширение «memcache». (Они являются отдельными расширениями PHP.)Могу ли я установить расширение memcached PHP с помощью PECL?

Например, эти команды работают нормально:

$ sudo pecl install memcache
$ sudo pecl install APC
$ sudo pecl install oauth

Однако, пытаясь установить Memcached вызывает ошибку:

$ sudo pecl install memcached
...
ld: library not found for -lmemcached
collect2: ld returned 1 exit status
make: *** [memcached.la] Error 1
ERROR: `make' failed

Я использую PECL, Memcached , и libmemcached из Mac Ports (macports.org) на недавнем Intel Mac. Библиотеки libmemcached можно найти в/opt/local:

/opt/local/include/libmemcached
/opt/local/include/libmemcached/libmemcached_config.h
/opt/local/lib/libmemcached.2.0.0.dylib
/opt/local/lib/libmemcached.2.dylib
/opt/local/lib/libmemcached.a
/opt/local/lib/libmemcached.dylib
/opt/local/lib/libmemcached.la

Любая идея, что я могу делать неправильно?

ответ

31

Андрей Zmievski (разработчик Memcached плагин) любезно ответил на мой запрос по электронной почте со следующими инструкциями:

$ pecl download memcached 
$ tar zxvf memcached-1.0.0.tgz (or whatever version downloads) 
$ cd memcached-1.0.0 
$ phpize 
$ ./configure --with-libmemcached-dir=/opt/local 
$ make 
$ sudo make install 

Это работало отлично.

+2

Что такое/opt/local ссылка на? Я не понимаю эту часть. –

+0

Для memcache (а не memcached) с MAMP 1.9 мне пришлось использовать этот способ для настройки:. ./configure --prefix =/Applications/MAMP/--with-php-config =/Applications/MAMP/bin/php5. 3/bin/php-config' – phemios

+1

@ChrisHarrison:/opt/local - это местоположение MacPorts (хотя теперь я использую Brew.) – richardkmiller

1

Как вы видели, новое расширение memcached использует libmemcached для тяжелого подъема. Если бы это был Linux, я бы сказал, что возможно, что у вас нет/opt/local/lib /, перечисленных в ld.so.conf (и запустите 'ldconfig').

MaxOSX не использует это. Он, однако, устанавливается из «портов». http://lsimons.wordpress.com/2008/05/01/serious-php-part-1/

1

такой же положение дел здесь. я должен был сделать выше, но с явными именами путей (я запустить мой PHP и т.д. из/Opt/местный)

  • /Opt/местные/бен/PECL загрузки Memcached
  • TAR zxvf Memcached -1.0.0.tgz
  • кд Memcached-1.0.0
  • /Opt/местные/бен/phpize
  • ./configure prefix =/Opt/местный --with-PHP-конфигурации =/opt/local/bin/php-config --with-libmemcached- реж =/Opt/местный
  • сделать
  • сделать установки

обычно этот вид вещи довольно просто на OS X с MacPorts, но нет php5-Memcached пакета еще (только один для старше , пакет memcache (no "d")). ой, мне также пришлось установить более старую версию libmemcached, так как последняя версия не компилировалась на os x 10.5.8 для меня. ой!

0

Ну, после многих попыток это решение работает только для меня.

  1. Установка XAMPP
  2. Установите заварить (https://github.com/Homebrew/homebrew/wiki/Installation)
  3. $ заварить
  4. установить libmemcached
  5. кд/Applications/XAMPP/xamppfiles/bin/
  6. $ Sudo ./pecl установить Memcached

Build process completed successfully Installing '/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20121212/memcached.so' install ok: channel://pecl.php.net/memcached-2.2.0 configuration option "php_ini" is not set to php.ini location You should add "extension=memcached.so" to php.ini

VOILA !!