martes, 23 de septiembre de 2008

Instalando memcached y el módulo PHP5 memcache sobre Debian Etch (Apache2).

Esta guía nos va a orientar sobre cómo instalar memcached y el módulo de PHP5 memcache en un sistema Debian Etch con Apache2. Memcached es un demonio que puede almacenar objetos en la memoria del sistema, un buen ejemplo de ello son los resultados de las consultas de bases de datos que puede acelerar su sitio enormemente. Si bien se puede utilizar memcache sobre una red es recomendable que lo instalen en un mismo servidor para evitar la creación de redes innecesarias.


Cabe señalar la memcached no es la solución "fácil" para la aceleración de sus aplicaciones web ya que normalmente usted tiene que ajustar sus scripts (PHP, Perl, etc) para trabajar con memcached, por lo que esto requiere un poco de trabajo.

La guía está hecha teniendo como referencia un servidor Debian Etch con la dirección IP 192.168.0.100 donde Apache2 y PHP5 ya están instalados y trabajando. Apache es usado por defecto del documento raíz / var / www en este tutorial para los propósitos de la demostración. Por supuesto, puede utilizar cualquier otro vhost también, pero se tendría que ajustar la ruta al archivo info.php que usaremos.

2-Comprobación de PHP5.

En primer lugar y antes de instalar memcached, vamos a averiguar sobre nuestra instalación PHP5, creamos el archivo info.php en nuestro documento raíz / var / www:

vi /var/www/info.php vi / var / www / info.php

A continuación, llamamos al archico desde un navegador:
http://192.168.0.100/info.php



... pero no está en cualquier lugar:

3- Instalando memcached Y El módulo de PHP5 memcache

memcached y el módulo de PHP5 memcache están disponibles como paquetes de Debian Etch, de modo que los podemos instalar de la siguiente manera:

apt-get install memcached php5-memcache

Después de la instalación, memcached ya debería estar funcionando. Podemos comprobarlo escribiendo:

netstat -tap | grep memcached netstat-tap | grep memcached

server1:~# netstat -tap | grep memcached
tcp 0 0 *:11211 *:* LISTEN 3053/memcached
server1:~#


Como pueden ver, memcached se está ejecutando en el puerto 11211 (el puerto por defecto memcached), escucha a todas las interfaces en el sistema.Memcached no tiene un mecanismos de autenticación, esto significa que cualquiera puede conectarse a él desde el exterior y utilizarlo. Para evitar esto, puede cerrar el puerto 11211 en el firewall, o puede configurar memcached a escuchar sólo a localhost. Usaremos el último método.

Para ello, abra el memcached configuración que se guarda en / etc / memcached.conf:

VI / etc / memcached.conf

Añadir -l 127.0.0.1 a la configuración (también se puede ajustar la configuración de otros si se quiere, el archivo contiene explicaciones para cada posición):

[...] # Especifica que la dirección IP a escuchar. El valor por defecto es escuchar a todas las direcciones IP
#Este parámetro es una de las pocas medidas de seguridad que da memcached, así que asegúrate de
# es escuchar en una interfaz de un cortafuegos.

# -l 12.34.56.78 -l 127.0.0.1 [...]
#-12.34.56.78-l l 127.0.0.1 [...]


Reiniciamos memcached ...

/etc/init.d/memcached restart / etc / init.d / memcached reiniciar

... y lo ejecutamos

netstat -tap | grep memcached netstat-tap | grep memcached

Otra vez.,como pueden ver, memcached escucha ahora sólo en localhost:

server1:~# netstat -tap | grep memcached
tcp 0 0 localhost.localdo:11211 *:* LISTEN 3092/memcached
server1:~#

Después, reinicia Apache a fin de que nuestra nueva configuración de PHP que surta efecto:

/etc/init.d/apache2 restart / etc/init.d/apache2 restart

A continuación, abra de nuevo info.php en un navegador: http://192.168.0.100/info.php

Ahora deberías ver memcache mencionados en la página de lo que significa que ha sido integrado con éxito y está trabajando como se espera:


Para utilizar el módulo PHP memcache con las aplicaciones PHP, debemos salir antes de los ejemplos memcache y la función de referencia memcache .

Utilizaremos el script de ejemplo de http://dk.php.net/manual/en/memcache.examples.php y guardardamos en el fichero / var / www / memcachetest.php:

vi / var / www / memcachetest.php

connect ( 'localhost', 11211) or die ( "No se ha podido conectar"); $ version = $ memcache-> getVersion (); echo "Servidor de la versión:". $ versión ".
\ n"; $ tmp_object = new stdClass; $ tmp_object-> str_attr = 'prueba', $ tmp_object-> int_attr = 123; $ memcache-> set ( 'clave', $ tmp_object, falso, 10) or die ( "Error al guardar datos en el servidor"); echo "almacenar datos en la caché (datos expirará en 10 segundos)
\ n"; get_result $ = $ memcache-> get ( 'clave '); Echo "Los datos de la caché:
\ n"; var_dump ($ get_result);?>


A continuación, llamamos a ese archivo en un navegador (http://192.168.0.100/memcachetest.php).
Si todo va bien, la salida debe ver como sigue:

Espero les sea de utilidad...hasta la próxima...


Fuente:Tuxeros.com.ar
Editor: Julio César Duarte.