Antes de iniciar, baixe as dependências necessárias: o libevent e o próprio memcached.
Obter o memcached:
wget http://memcached.org/latest
wget http://www.memcached.org/files/memcached-1.5.7.tar.gz
Obter o libevent (o parâmetro --no-check-certificate é necessário para conexões HTTPS):
wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz --no-check-certificate
Extraia os pacotes e compile. Primeiro o libevent:
tar zxvf libevent-2.1.8-stable.tar.gz
cd libevent-2.1.8-stable
./configure --prefix=/opt/libevent
make && make install
Verifique a instalação listando os arquivos da biblioteca:
ls -la /opt/libevent/lib | grep libevent
Agora compile o memcached, informando onde o libevent foi instalado:
cd ../memcached-1.5.7
./configure --prefix=/opt/memcached --with-libevent=/opt/libevent
make && make install
Copie o binário para um diretório do PATH:
cp /opt/memcached/bin/memcached /usr/local/bin/
Inicie o serviço com os parâmetros desejados. Exemplo:
/usr/local/bin/memcached -d -m 256 -u daokr -l 127.0.0.1 -p 11200 -c 1024 -P /tmp/memcached.pid
Para confirmar se o memcached está ouvindo na porta, utilize:
telnet 127.0.0.1 11200
Principais opções do daemon:
-d: executar como serviço em segundo plano-m: quantidade de memória em MB (ex.: 256)-u: usuário sob o qual o processo roda-l: IP da interface de escuta (aqui, localhost)-p: porta (preferencialmente acima de 1024)-c: máximo de conexões simultâneas-P: arquivo para guardar o PID
- Instalação da Extensão PHP memccahed
A extensão memcached para PHP depende da biblioteca libmemcached. Portanto, instale-a primeiro:
cd /tmp
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure --prefix=/opt/libmemcached --with-memcached
make
make install
Em seguida, baixe o pacote do PECL correspondente à extensão. Verifique a compatibilidade com a sua versão do PHP em pecl.php.net/package/memcached. Exemplo com a versão 3.0.4:
cd /tmp
wget http://pecl.php.net/get/memcached-3.0.4.tgz
tar zxvf memcached-3.0.4.tgz
cd memcached-3.0.4
Antes de compilar a extensão, certifique-se de que o autoconf está disponível. Se houver erro ao executar phpize, instale as ferramentas necessárias:
# Em distribuições baseadas em Red Hat
yum install m4 autoconf -y
# Em Debian/Ubuntu
apt install m4 autoconf -y
Prepare o ambiente de compilação da extensão e configure-a:
/opt/php/bin/phpize
./configure --with-php-config=/opt/php/bin/php-config \
--with-libmemcached-dir=/opt/libmemcached \
--disable-memcached-sasl
make && make install
O resultado exibirá o caminho onde o arquivo memcached.so foi gerado, por exemplo: /opt/php/lib/php/extensions/no-debug-zts-20151012/.
Edite o php.ini e ajuste o diretório de extensões, se necessário, e ative o módulo:
extension_dir = "/opt/php/lib/php/extensions/no-debug-non-zts-2007xxxx/"
extension = memcached.so
Reinicie o servidor web (nginx/apache), o PHP-FPM e o serviço memcached. Para testar, crie um script PHP como o seguinte:
<?php
$cache = new Memcached();
$servidores = [
['127.0.0.1', 11200]
];
$cache->addServers($servidores);
$cache->set('nome', 'valor_teste', 15);
echo $cache->get('nome');
?>
Se a string valor_teste for exibida, a instalação está funcionando. Alternativamente, pode-se verificar via telnet:
telnet localhost 11200
get nome
O servidor retornará o valor armazenado.