Instalar Memcached

Guía para instalar Memcached en Linux

Memcached es una libreria que sirve para guardar en memoria objetos de la base de datos agilizando y reduciendo el número de peticiones que se realizan.

Instalar Dependencias

Memcached necesita de esta librería que podemos descargar en monkey.org, es posible que haya versiones más actuales. Pero con la 1.3 ya vamos bien.

wget http://monkey.org/~provos/libevent-1.3e.tar.gz
tar zxpfv libevent-1.3e.tar.gz
cd libevent-1.3e
./configure
make install

Instalar Memcached

wget http://memcached.googlecode.com/files/memcached-1.2.8.tar.gz
tar zxpfv memcached-1.2.8.tar.gz
cd memcached-1.2.8
./configure
make install

Crear el usuario con el que se ejecutará el daemon memcached llamado con el mismo nombre.

adduser memcached

Para acceder a memcached desde cualquier sitio y poder ejecutar luego el daemon.

ln -s /usr/local/lib/libevent-1.3e.so.1 /lib/

Por ejemplo para arrancar una instancia del daemon: En este ejemplo asignamos 50 MB de memoria ram, desde el ip localhost y con el puerto recomendado 11211.

memcached -u memcached -d -m 50 -l 127.0.0.1 -p 11211

Para ver que funciona podemos abrir otra consola y ejecutar un telnet en el puerto 11211.

telnet 127.0.0.1 11211

Por supuesto también podemos ver que se está ejecutando en el sistema.

ps aux | grep memcached

Ahora memcached ya funciona correctamente por si solo. A continuación veremos cómo configurarlo para que funcione en PHP y luego como hacer que se ejecute siempre al arrancar el servidor.

Instalar la extensión memcache en PHP

No confundir con la extensión memcached que también está en http://pecl.php.net. Al momento de escribir esta guía la versión estable era la 2.2.5.

wget http://pecl.php.net/get/memcache
tar zxvf memcache-2.2.5.tgz

cd memcache-2.2.5

./configure
make
make install

En el archivo php.ini debemos habilitar la extension añadiendo la siguiente línea en el apartado de extensiones.

extension=memcache.so

Luego reiniciamos el servidor Apache

/etc/init.d/httpd restart

Ya podemos ver en el php.ini que aparece la extensión instalada.

Arrancar memcached cuando inicie el sistema

Hay que crear un script de inicialización en la carpeta /etc/init.d llamado por ejemplo memcached. Este script lo configuraremos para poder configurarlo con el chkconfig. Dentro escribimos:

#!/bin/bash

memcached Script de inicio para Memcached

chkconfig: 235 95 16

description: memcached

processname: memcached

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr:bin memcached -u memcached -d -m 50 -p 11211

Ahora cambiamos los permisos de este archivo para que sea ejecutable.

chmod 755 memcached

Finalmente lo agregamos a la lista de servicios de chkconfig:

chkconfig --add memcached
chkconfig --list memcached

Y ya podemos reiniciar el servidor. Cuando haya reiniciado veremos, utilizando el comando siguiente:

ps aux | grep memcached

que ya se ejecuta por si sola una instancia del demonio.