Me pidieron que lanzara un sitio que alguien más construyó. Es un sitio de la tienda de Wordpress que necesita Memcached para ejecutarse, y he tenido problemas para que Memcached y el plugin memcache php funcionen en mi servidor local. Antes de instalar memcached y el plugin PHP memcache, obtendría este error:
Fatal error: Class 'Memcache' not found in [Path]wp-content/object-cache.php on line 350
Ahora que tengo memcached y el plugin PHP memcache instalado (a través de Homebrew), aparece la página "No se recibieron datos" y aparece este error en mi registro de errores de Apache:
dyld: lazy symbol binding failed: Symbol not found: _mmc_queue_pop
Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20090626/memcache.so
Expected in: flat namespace
dyld: Symbol not found: _mmc_queue_pop
Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20090626/memcache.so
Expected in: flat namespace
[Sat May 05 16:38:27 2012] [notice] child pid 26491 exit signal Trace/BPT trap (5)
He intentado buscar ese pid en el Monitor de actividad en vano, y cambia cada vez que intento cargar la página. Además, no puedo encontrar nada sobre _mmc_queue_pop en ningún lado.
Estoy ejecutando Mac OSX Lion, PHP ver 5.3.8, Memcached ver 1.4.13 y Memcache PHP plugin ver 3.0.6.
¿Alguien sabe como puedo arreglar esto?
¡Gracias!
-fgnu89-inline
inCFLAGS
/CXXFLAGS
. Lo que sucede es que lainline
palabra clave bajo las nuevas reglas hace_mmc_queue_pop
que se alinee en todos los casos, sin dejar nada paramemcache.so
vincular dinámicamente.Respuestas:
Como David mencionó en los comentarios, al compilar el complemento memcache, NO memcached en sí mismo, debe agregar una ejecución
configure
como esta:Eso funcionó perfectamente para mí.
fuente
Sugeriría como un primer paso para asegurarme de qué memcache.so está realmente vinculado. En Linux usarías
ldd
, en OSX debería serotool -L
IIRC. Esto parece que el complemento se apodera de una de las múltiples bibliotecas de memoria caché del sistema o de una versión que es incompatible.fuente
Anexo - El Capitan, php56, php56-memcache 3.0.8
Después de leer las respuestas de David Schwartz y CourtDemone, todavía no lo entendí, hasta que leí esta respuesta en SO sobre cómo editar una fórmula casera.
Agregué lo siguiente a la fórmula ejecutando
brew edit php56-memcache
y pegando en las siguientes líneas:fuente