Otimizando o Drupal Atrium com o Memcache

 
Introdução:

Memcache é um daemon (Disk And Execution MONitor) projetado para diminuir o carregamento dos bancos de ddos em aplicações web dinâmicas, como o Drupal, por meio do armazenamento de objetos em cache.
Requisitos:

A esta altura você já deve ter uma distribuição do Drupal ou do Drupal Atrium rodando em seu servidor. Se não o tiver instalado ainda, cheque estes tutorials: Drupal ou Drupal Atrium.

Instalação:

a) PHP 5:
No Terminal (Ctrl+T), rode os seguintes comandos:
Nota: se você segiu o tutorial de instalação do LAMP, disponível aqui, o memcached já está instalado, faltando apenas configurá-lo.

sudo apt-get -y update


sudo apt-get -y install php5-memcache memcached


b) PHP 7.0:
No Terminal (Ctrl+T), rode os seguintes comandos:
Nota: se você segiu o tutorial de instalação do LAMP, disponível aqui, o memcached já está instalado, faltando apenas configurá-lo.

sudo apt-get -y update


sudo apt-get -y install php-memcache memcached


c) Ambas as versões:
Para configurar o memcached, digite o seguinte comando no Terminal:

sudo gedit /etc/memcached.conf

Localize o parâmetro -m e altere seu valor para, pelo menos, 1GB. Em seguida, localize o parâmetro -l ("L" minúsculo) e mude seu valor para 127.0.0.1 ou para localhost.

Salve o documento, feche o editor de texto e reinicie o memcached com o comando:

sudo service memcached restart

Reinicie o servidor-web com o comando:

sudo service apache2 restart

Para verificar se o memcached é reconhecido pelo Apache, rode seu script de relatório, gerado quando da instalação do LAMP, digitando o seguinte endereço no navegador:

localhost/testphp.php

ou, se não funcionar:

localhost/html/testphp.php

Localize a seção "memcached" digitando seu nome no campo de busca (Ctrl+F).

Também é recomendável verificar se o memcached está funcionando corretamente. Para tanto, será necessário criar um script php. Comece abrindo o editor de texto com o comando:

sudo gedit /var/www/html/cache-test.php

No editor, copie e cole os script abaixo:

<?php
$mem = new Memcache();
$mem->addServer("localhost", 11211);

$result = $mem->get("test");

if ($result) {
  echo $result;
} else {
  echo "No matching key found.  Refresh the browser to add it!";
  $mem->set("test", "Successfully retrieved the data!") or die("Couldn't save anything to memcached...");
}
?>

 

 

Salve, saia do editor, abra o navegador-web e digite o seguinte endereço:

localhost/cache-test.php

ou

localhost/html/cache-test.php

Na primeira vez que rodar o script, a seguinte mensagem deverá aparecer:

No matching key found. Refresh the browser to add it!

Recarregue a página (F5). A mensagem deve mudar para:


Successfully retrieved the data!

Outra forma de testar o memcache é com o programa memstat. Comece instalando-o com o comando abaixo, no Terminal:

sudo apt-get install memstat

A seguir, teste o memcache com o comando:

memstat 127.0.0.1:11211 

Instalação do Memcache no Drupal Atrium:

No Drupal ou no Atrium, vá em Admin / Modules e clique no botão "Install new module".


Em outra aba do navegador, vá em www.drupal.org e busque pelo módulo memcache. Até a edição deste tutorial, o endereço do módulo era: https://www.drupal.org/project/memcache.

Role a página até o final, escolha a versão adequada para instalação, clique com o botão da direita sobre o link "tar.gz" correspondente e, no menu pop-up, clique em "Copiar link".

De volta ao sistema, clique na caixa de texto "Install from a URL " e cole o link copiado (Ctrl+L). Clique em "Install".

Volte aos módulos (Admin / Modules), clique em "All" na lista da esquerda e digite "memcache" na caixa de busca. O módulo já estará presente. Ative-o e salve a configuração.

Últimas configurações

É preciso editar o arquivo settings.php na instalação do sistema, para incluir o arquivo memcache.inc:

sudo gedit /var/www/atrium/sites/default/settings.php

Adicione as seguintes linhas ao arquivo:

$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
$conf['cache_default_class'] = 'MemCacheDrupal';
$conf['memcache_key_prefix'] = 'algo_único';


Onde "algo_único" é um prefixo único, de sua escolha, para diferenciar o cache desta instalação do Drupal (ou do Drupal Atrium), das demais, caso tenha mais de uma no mesmo servidor.