2009-03-25 21 views
11

Tengo problemas para instalar la extensión PHP "memcached" de PECL, aunque puedo instalar con éxito la extensión "memcache". (Son extensiones PHP separados.)¿Puedo instalar la extensión de memcached PHP con PECL?

Por ejemplo, estos comandos funcionan bien:

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

Sin embargo, intentar instalar memcached provoca errores:

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

estoy usando pecl, memcached y libmemcached desde Mac Ports (macports.org) en una reciente Intel Mac. Las bibliotecas libmemcached se pueden encontrar en/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

Cualquier idea de lo que puede estar haciendo mal?

Respuesta

31

Andrei Zmievski (desarrollador del plugin memcached) amablemente respondió a mi solicitud por correo electrónico con las siguientes instrucciones:

$ 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 

Esto funcionó a la perfección.

+2

¿A qué se refiere/opt/local una referencia? No entiendo esta parte. –

+0

Para memcache (y no memcached) con MAMP 1.9 tuve que usar esta forma para configurar: './configure --prefix =/Applications/MAMP/--with-php-config =/Applications/MAMP/bin/php5. 3/bin/php-config' – phemios

+1

@ChrisHarrison:/opt/local es la ubicación de los MacPorts (aunque ahora estoy usando Brew.) – richardkmiller

1

Como has visto, la nueva extensión de memcached usa libmemcached para hacer el trabajo pesado. Si fuera Linux, diría que es posible que no tenga/opt/local/lib/listado en ld.so.conf (y ejecute 'ldconfig').

Sin embargo, MaxOSX no usa eso. Sin embargo, es instalable desde 'puertos' aparentemente. http://lsimons.wordpress.com/2008/05/01/serious-php-part-1/

1

misma situación aquí. que tenía que hacer todo lo anterior, pero con los nombres de rutas explícitas (corro mi php etc de/opt/local)

  • /opt/local/bin/pecl descarga memcached
  • tar zxvf memcached -1.0.0.tgz
  • cd memcached-1.0.0
  • /opt/local/bin/phpize
  • ./configure --prefix =/opt/local --con-php-config =/opt/local/bin/php-config --with-libmemcached- dir =/opt/local
  • hacer
  • make install

normalmente este tipo de cosas es bastante simple en OS X con macports, pero no hay ningún paquete php5-memcached todavía (sólo uno de los mayores , paquete de memcache (no "d")). Ah, y también tuve que instalar una versión anterior de libmemcached, ya que la última versión no compilaba en os x 10.5.8 para mí. oy!

0

Bueno, después de muchos intentos solo esta solución funciona para mí.

  1. Instalar XAMPP
  2. Instalar cerveza (https://github.com/Homebrew/homebrew/wiki/Installation)
  3. $ brebaje
  4. instalar libmemcached
  5. cd/Aplicaciones/XAMPP/xamppfiles/bin/
  6. $ sudo ./pecl instalar 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 !!

Cuestiones relacionadas