Могу ли я установить расширение PHP memcached с помощью PECL?

У меня проблемы с установкой расширения PHP "memcached" из PECL, хотя я могу успешно установить Расширение "memcache". (Это отдельные расширения PHP.)

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

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

Однако попытка установки memcached вызывает ошибки:

$ sudo pecl install memcached
...
ld: не найдена библиотека для -lmemcached
collect2: ld вернул 1 статус выхода
make: *** [memcached.la] Ошибка 1
ОШИБКА: `make 'не удалось

Я использую pecl, memcached и libmemcached из портов Mac (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

Есть идеи, что я делаю неправильно?


person richardkmiller    schedule 25.03.2009    source источник


Ответы (4)


Андрей Змиевский (разработчик плагина 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

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

person richardkmiller    schedule 30.03.2009
comment
На что ссылается / opt / local? Я не понимаю этой части. - person Chris Harrison; 23.03.2012
comment
Для memcache (а не memcached) с MAMP 1.9 мне пришлось использовать этот способ настройки: ./configure --prefix=/Applications/MAMP/ --with-php-config=/Applications/MAMP/bin/php5.3/bin/php-config - person phemios; 05.04.2012
comment
@ChrisHarrison: / opt / local - это расположение MacPorts (хотя сейчас я использую Brew.) - person richardkmiller; 05.05.2012
comment
Мужик, тебе нужно пройти через обручи. В любом случае, указанное выше решение сработало для меня (с использованием libmemcached 1.0.10 и memcached 2.1.0) с некоторыми дополнительными шагами: сначала выполните sudo port install libmemcached, а затем добавив extension = memcached.so в мой / private / etc / php .ini и перезапуск sudo apachectl для хорошей меры. - person PapaFreud; 08.11.2012
comment
make: *** Нет правила для целевой `install '. Останавливаться. - person ; 11.06.2018

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

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

person Alister Bulman    schedule 26.03.2009

такая же ситуация и здесь. мне пришлось сделать это, но с явными именами путей (я запускаю свой php и т. д. из / opt / local)

  • / opt / local / bin / pecl скачать memcached
  • tar zxvf memcached-1.0.0.tgz
  • компакт-диск memcached-1.0.0
  • / opt / local / bin / phpize
  • ./configure --prefix = / opt / local --with-php-config = / opt / local / bin / php-config --with-libmemcached-dir = / opt / local
  • сделать
  • сделать установку

обычно такие вещи довольно просты в os x с macports, но пока нет пакета php5-memcached (только один для более старого пакета, memcache (без "d")). о, мне также пришлось установить более старую версию libmemcached, поскольку последняя версия для меня не компилировалась на os x 10.5.8. ой!

person Paul    schedule 17.02.2010

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

  1. Установить XAMPP
  2. Установите пиво (https://github.com/Homebrew/homebrew/wiki/Installation)
  3. $ варево
  4. установить libmemcached
  5. компакт-диск / Приложения / XAMPP / xamppfiles / bin /
  6. $ sudo ./pecl установить memcached

Процесс сборки завершен успешно Установка '/Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20121212/memcached.so' install ok: channel: //pecl.php.net/memcached-2.2. 0 параметр конфигурации "php_ini" не установлен в расположение php.ini. Вы должны добавить "extension = memcached.so" в php.ini

ВОЙЛА !!

person Oskar Hasinski    schedule 23.07.2014