Me pediram para lançar um site que outra pessoa criou. É um site de loja do Wordpress que precisa do Memcached para rodar, e eu estou tendo problemas para fazer com que o Memcached e o plugin php do memcache funcionem no meu servidor local. Antes de instalar o memcached e o plugin PHP do memcache, eu receberia este erro:
Fatal error: Class 'Memcache' not found in [Path]wp-content/object-cache.php on line 350
Agora que eu tenho o memcached e o plugin PHP do memcache instalado (via Homebrew), recebo uma página "Nenhum dado recebido" e recebo esse erro no meu log de erros do 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)
Tentei procurar esse pid no Activity Monitor sem sucesso e ele muda toda vez que tento carregar a página. Além disso, não consigo encontrar nada sobre _mmc_queue_pop em nenhum lugar.
Estou executando o Mac OSX Lion, PHP ver 5.3.8, Memcached ver 1.4.13 e Memcache PHP plugin ver 3.0.6.
Alguém sabe como eu posso consertar isso?
Obrigado!
-fgnu89-inline
emCFLAGS
/CXXFLAGS
. O que acontece é que ainline
palavra - chave sob novas regras faz_mmc_queue_pop
com que seja incorporada em todas as instâncias, não deixando nada paramemcache.so
vincular dinamicamente.Respostas:
Como David mencionou nos comentários, ao criar o plug-in memcache, NÃO o próprio memcached, você deve adicionar run
configure
como este:Isso funcionou perfeitamente para mim.
fonte
Eu sugeriria como primeiro passo garantir que o memcache.so esteja realmente vinculado. No Linux você usaria
ldd
, no OSX deveria serotool -L
IIRC. Parece que o plug-in se apossou da biblioteca incorreta de várias bibliotecas de memcache no sistema ou de uma versão incompatível.fonte
Adendo - El Capitan, php56, php56-memcache 3.0.8
Depois de ler as respostas de David Schwartz e CourtDemone, ainda não recebi, até ler esta resposta no SO sobre como editar uma fórmula caseira.
Adicionei o seguinte à fórmula executando
brew edit php56-memcache
e colando nas seguintes linhas:fonte