Instalar xCache en centOS 5 – Plesk 9.2
10 Septiembre 2009 - 1:15Siguiendo 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.



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
Fernando Gomez says:
10 Septiembre 2009 - 14:01
Gracias a ti y tu blog por ponerme en el camino.
Un saludo !
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.
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.
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) [...]
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
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?