Guia de Instalação do Servidor Memcached e da Extensão PHP no Linux

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
  1. 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.

Tags: Memcached PHP Linux Libevent libmemcached

Publicado em 10-16 13:39