Instalar xCache en centOS 5 – Plesk 9.2

10 Septiembre 2009 - 1:15

Siguiendo el consejo de Jaume Ferre hoy he instalado en varios servidores que corren sobre centOS 5 x86 – 64 (la típica instalación de un VPS con Plesk 9.2 ). Como me ha costado unas cuantas horas he pensado que escribiendo un post sobre como instalar xCache, ayudaré a otros que se encuentren con el mismo problema, como me ha pasado a mi con los post de Rubén Ortiz y Vichaunter .

1. Descargar la última versión estable desde SSH:
En mi caso ha sido la 1.3.0

# cd /usr/bin/
# wget http://xcache.lighttpd.net/pub/Releases/1.3.0/xcache-1.3.0.tar.gz

2. Descomprimir

# tar -zxvf xcache-1.3.0.tar.gz
# cd xcache-1.3.0

3. Compilar xcache

# phpize

Aqui tuve mis primeros problemas, ya que no tenía instalada la librería necesaria para ejecutar phpize. Si te sucede lo mismo, debes instalar la librería php-devel . Yo lo hago desde el PIM del servidor, pero puedes hacerlo con el yum.


# ./configure --enable-xcache

Al llegar aquí volví a tener problemas para compilar el código en C. Al intentarlo devuelve el error:
configure: error: no acceptable C compiler found in $PATH
se soluciona fácilmente instalando la librería gcc.


# make

Otra vez problemas. Me devuelve el error:
/usr/include/php/ext/date/lib/timelib_structs.h:24:28: error: timelib_config.h: No such file or directory

Esto si que es mucho más extraño. Solo si te devuelve este error, debes editar el fichero /usr/include/php/ext/date/lib/timelib_structs.h y modificar la linea #include <timelib_config.h> por #include "timelib_config.h" . Simplemente cambiando el corchete por comillas.

Yo lo hago con el joe, pero lo puedes hacer con vi o culaquier editor
# joe /usr/include/php/ext/date/lib/timelib_structs.h

Continuamos con la compilación
# make install

Esto lo que va a hacer es generar un fichero xcache.so que por defecto se instala en la ruta:
/usr/lib64/php/modules/xcache.so

4. Crear xcache.ini
Esta parte se puede hacer de dos formas o bien introduciendo todas las variables en el php.ini o creando el fichero xcache.ini . Yo he preferido hacerlo de la segunda forma.

# cd /etc/php.d/
# joe xcache.ini

como el fichero no existe, debes pegar lo siguiente:


[xcache-common]
; change me - 64 bit php => /usr/lib64/php/modules/xcache.so
; 32 bit php => /usr/lib/php/modules/xcache.so
zend_extension = /usr/lib64/php/modules/xcache.so

[xcache.admin]
xcache.admin.auth = On
xcache.admin.user = "admin"
; xcache.admin.pass = md5($your_password)
xcache.admin.pass = ""

[xcache]
xcache.shm_scheme = "mmap"
xcache.size = 32M
xcache.count = 1
xcache.slots = 8K
xcache.ttl = 3600
xcache.gc_interval = 300

; Same as aboves but for variable cache
; If you don't know for sure that you need this, you probably don't
xcache.var_size = 0M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300

; N/A for /dev/zero
xcache.readonly_protection = Off

xcache.mmap_path = "/dev/zero"

xcache.cacher = On
xcache.stat = On

5. Configurar xcache.ini
xcache te permite acceder a un panel de control a través de web, para ver las estadísticas de cacheo, urls, ratio de compresión de los php, etc. Para ello debemos introducir en xcache.admin.pass = “” el password con el que vamos a querer acceder a ese panel.

Ojo, el password ha de estar encriptado en MD5, por lo que necesitarás una herramienta online o algo similar que lo codifique. Por ejemplo, el MD5 del password “hola” es “4d186321c1a7f0f354b297e8914ab240″ . Esto último es lo que debes poner en esa variable del xcache.ini

Hay un ajuste más que debes hacer.
cat /proc/cpuinfo |grep -c processor
Esto te dice el número de procesadores que tienes en el servidor o VPS y debes colocarlo en la variable xcache.count = del xcache.ini , en nuestro caso xcache.count = 3

6. Reiniciamos Apache
# service httpd restart

7. Comprobamos que todo ha ido bien
# php -v

Si todo ha ido bien, debería devolver los parámetros de la actual instalación de PHP y deberías ver la línea “XCache v1.3.0, Copyright (c) 2005-2007, by mOo”

8. Creamos el panel de control
Copiamos el directorio /usr/bin/xcache-1.3.0/admin al directorio donde quieras verlo a través de la web. Es decir, si en ese servidor tienes un dominio www.dominio.com y su ruta es /var/www/vhosts/dominio.com/httpdocs/ , deberás crear ahí un directorio admin y copiar el contenido original. De ese modo desde www.dominio.com/admin accderás con el user=”admin” y el pass que has colocado en el paso 5.

# mkdir /var/www/vhosts/dominio.com/httpdocs/admin
# cp -R admin/* /var/www/vhosts/dominio.com/httpdocs/admin/

Nosotros en nuestro web del eurobasket, hemos notado nada más instalarlo una mejoría brutal en la velocidad de acceso. En algunas páginas como las “resultados eurobasket” o “calendario eurobasket” el cacheo ha sido espectacular ya que han sido unas de las mas vistas. No creo que sea casualidad tampoco que desde hoy hayamos duplicado el tráfico de estos días.

Puedes Hacer un Comentario, o Trackback desde tu web.

7 Comentarios to “Instalar xCache en centOS 5 – Plesk 9.2”

  1. Ruben Ortiz says:

    10 Septiembre 2009 - 12:15

    Hola Fernando

    gracias por el pingback. La verdad es que Xcache es un cacheador muy potente, diría que prácticamente lo utilizamos en todo y nunca ha dado problemas. Y muy estable.

    Saludos

  2. Fernando Gomez says:

    10 Septiembre 2009 - 14:01

    Gracias a ti y tu blog por ponerme en el camino.
    Un saludo !

  3. David Carrero Fdez-Baillo says:

    16 Septiembre 2009 - 16:41

    Yo estoy usando eaccelerator. Es mejor xCache, igual puedo tenerlos ambos a la vez ?? También tengo por defecto Zend Optimizer.

  4. Fernando Gomez says:

    16 Septiembre 2009 - 17:40

    David,
    no se si puedes tenerlos al mismo tiempo, pero … no se si será demasiado caché :-)

    De todos modos, el truco de xCache está en configurarlo bien.
    Una de las claves es mover la carpeta /admin del xcache a un dominio que tengas alojado y ver los datos que te muestra. Yo estoy empezando a controlar como configurarlo, haciendo tests, en cuanto pueda escribiré un post acerca de como configurar xcache, pero si necesitas ayuda, ya sabes donde estoy :-)

    Respecto a Zend Optimizer, si, corren juntos sin problemas.
    De hecho, al hacer php -v , debería salirte un mensaje similar a este:

    PHP 5.1.6 (cli) (built: Apr 7 2009 08:00:18)
    Copyright (c) 1997-2006 The PHP Group
    Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
    with XCache v1.3.0, Copyright (c) 2005-2009, by mOo

    Un saludo.

  5. Wordpress balanceado en varios servidores | Fernando Gomez says:

    20 Octubre 2009 - 12:53

    [...] es reducir el peso de tu web y el número de querys a la base de datos y de llamadas a Apache. 2/ Instalar xCache u otro acelerador de php a nivel servidor. 3/ Tunear MySQL (escribiré un post sobre eso en breve) [...]

  6. Mauricio says:

    9 Noviembre 2009 - 20:53

    Saludos, en este momento estoy tratando de instalar el xCache, pero no se si con esta configuración pueda lograrlo, ya está compilado, pero no he podido meterlo dentro del php.ini. Gracias por la ayuda

    This program makes use of the Zend Scripting Language Engine:
    Zend Engine v2.2.0, Copyright (c) 1998-2009 Zend Technologies
    with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
    with the ionCube PHP Loader v3.1.34, Copyright (c) 2002-2009, by ionCube Ltd., and
    with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies
    with Suhosin v0.9.27, Copyright (c) 2007, by SektionEins GmbH
    with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

  7. Fernando Gomez says:

    10 Noviembre 2009 - 9:10

    No tengo claro que sea bueno eacelerator pueda convivir con xcache, pero no entiendo el problema del php.ini . O bien creas en xcache.ini o bien copias y pegas todo en el php.ini . ¿cual es problema que tienes?

Hacer un Comentario