Desarrollo de aplicaciones web con Drupal

Instalar y configurar memcache en Debian 7 y Drupal 7

Drupal status page

Memcache permite pasar el caché que actualmente Drupal almacena en una tabla de MySQL a memoria, consiguiendo de esta manera acelerar el acceso a estos datos por razones obvias.

Tenemos que instalar tres componentes:

  1. memcached es el demonio servicio que corre en el servidor y hace el trabajo de mantener los datos en memoria, el caché propiamente dicho.
  2. Una extensión PECL para PHP denominada memcache que permite al módulo Drupal hablar con el caché.
  3. El módulo para Drupal memcache que se encarga de cambiar la ubicación del cache desde la base de datos a memcached en memoria.

Instalar el servicio memcached

Conectamos con la consola de nuestro servidor Debian, como root o utilizando sudo, y ejecutamos los siguientes comandos:

apt-get install memcached libmemcached-tools

A continuación editamos el archivo de configuración y aumentamos la memoria disponible para el caché, que por defecto es 64 MB:

nano /etc/memcached.conf

En mi servidor web, con 4 GB de memoria, le he asignado 512 MB:

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
-m 64

Y reiniciamos el servicio:

service memcached restart

Instalar la extensión PECL para PHP

Puede ser que los paquetes necesarios para compilar el paquete de PECL ya los tengas instalados:

apt-get install php5-dev php-pear make
pecl install memcache-beta

Instalamos la versión beta ya que en el momento de escribir estas líneas es la 3.0.8 y el módulo para Drupal que instalaremos a continuación recomienda 3.0.6+ y la estable es la 2.2.7.

Ahora toca habilitar la extensión en PHP:

nano /etc/php5/conf.d/memcache.ini

Escribimos:

extension=memcache.so
memcache.hash_strategy="consistent"

Guardamos y reiniciamos el servidor web:

service apache2 reload

Instalar el módulo para Drupal 7

Esta operación debemos realizarla en cada uno de los sitios que queramos que pasen su caché a memoria.

Desde la carpeta raíz de la instalación de Drupal:

drush -y en memcache
nano sites/default/settings.php

Añadimos al final del archivo:

$conf['cache_backends'][] = 'sites/all/modules/memcache/memcache.inc';
$conf['cache_default_class'] = 'MemCacheDrupal';
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';
$conf['memcache_key_prefix'] = '4612byHgy75O7w2';  // Una clave única para cada sitio

Y listo. Si vamos a la página de estado de Drupal podremos ver que aparecen las líneas que se muestran en la imagen adjunta a este artículo.

Juan Miguel Sosso

Añadir nuevo comentario