Breves instrucciones para compilar y instalar Xcache en Centos 5. No tiene mayor dificultad.
# wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz
# tar -zxf xcache-1.2.2.tar.gz
# cd xcache
# phpize
# ./configure –enable-xcache
# make
# su
# make install
Instala las extesiones compartidas de php : /usr/lib/php/modules
# cat xcache.ini >> /etc/php.ini
Editamos php.ini para instalar Xcache como extension
# joe /etc/php.ini
zend_extension = /usr/lib/php/modules/xcache.so
La configuración del xcache está explicada en comentarios en el propio php.ini, pero hay cosas relevantes como el xcache.count, relativo al número de procesadores de nuestro sistema. Averiguamos el número de procesadores y luego editamos el php.ini
# cat /proc/cpuinfo |grep -c processor
xcache.count = 4
Las demás variables se pueden configurar fácilmente leyendo la documentación. Ahora podemos crear un archivo php con la función phpinfo ( ) y moverlo a nuestro directorio root para comprobar que Xcache funciona correctamente. No olvidemos reiniciar Apache!
# /etc/init.d/httpd restart
Instalar el Admin
Para instalar el admin primero creamos un fichero php como el siguiente para obtener el password encriptado en md5
echo md5("password");
Copiamos el resultado en php.ini, en la variable xcache.admin.pass
xcache.admin.pass = "password_en_md5"
Ahora copiamos el directorio web de Xcache a nuestro document root de apache
# cp -R admin/* /var/www/midominio.com/admin/.
Reiniciamos Apache. Accedemos al admin, introduciendo user y password.
Sobre el Error Segmentation Fault
Algo que me sucedió en la instalación de Xcache en Centos 5. Al comprobar los logs de Apache comprobé que había numerosos errores de Segmentation Fault.
# php -v
Segmentation fault
# cat /var/log/httpd/error_log
[Thu Oct 02 13:43:39 2008] [notice] child pid 15978 exit signal Segmentation fault (11)
[Thu Oct 02 13:43:42 2008] [notice] child pid 15979 exit signal Segmentation fault (11)
[Thu Oct 02 13:43:50 2008] [notice] child pid 15980 exit signal Segmentation fault (11)
[Thu Oct 02 13:44:08 2008] [notice] child pid 15981 exit signal Segmentation fault (11)
[Thu Oct 02 13:44:12 2008] [notice] child pid 15982 exit signal Segmentation fault (11)
[Thu Oct 02 13:44:33 2008] [notice] child pid 15983 exit signal Segmentation fault (11)
Para evitarlo hacemos lo siguiente
# rm /dev/zero
# mknod /dev/zero char 1 5
# /etc/init.d/httpd restart
Otro problema relativo. Aunque creemos el fichero /dev/zero, por una limitación (no se si de php.ini o el propio kernel) puede que el valor de cache que asignamos a xcache.size es superior a lo que puede guardar y eso provoca el siguiente error:
xcache /dev/zero: No space left on device
Para arreglar, hemos de reducir el valor asignado a xcache.size, por ejemplo empezando por 8M y reiniciando apache. No deberíamos ver más ese error ni Segmentation Faults en el apache. Y si los hay, deberían ser por otro motivo que no fuera Xcache.