Aceleradores de PHP + Instalación de xCache

Hace tiempo que llevo pensando en escribir un pequeño artículo sobre los Aceleradores de php. Y ésta semana, aprovechando que he instalado uno en una nueva máquina para hostear éste y algunos otros blogs más, me he animado a ello.

Lo primero de todo, es entender qué es un Acelerador de php.

Como su nombre bien indica, un acelerador de php es "algo" (ahora veremos qué..), que acelera nuestro código escrito en php. Si reflexionamos un poco llegaremos rápidamente a unas sencillas preguntas ¿Cómo puede hacer "algo" que nuestro código se ejecute más rápidamente? ¿Qué hace ésto que parece tan mágico? ¿Retoca nuestro codigo en tiempo real para optimizarlo? ¿Mágicamente hace que nuestro código consuma menos recursos?

Por supuesto que no...

La explicación es mucho más sencilla de lo que parece.
Como bien sabemos, php no es un lenguaje compilado, sino un lenguaje interpretado (script). Cuando nuestro servidor Apache, o un comando CLI llama al intérprete de php para que ejecute un determinado archivo, nuestro intérprete genera en tiempo real los opcodes necesarios para su ejecución. Cada vez que se llama a ejecutar uno de nuestros archivos, nuestro intérprete vuelve a compilar en tiempo real nuestros scripts, incluso cuando llamamos a un script que se haya ejecutado anteriormente. Es aquí donde entran en juego los Aceleradores de php. Su función es simplemente la de recubrir todo el proceso de compilación, guardar los estados compilados de nuestros scripts en memoria, y facilitar una interfaz automatizada que evalúa si es necesario compilar un script o si disponemos de una copia ya compilada en memoria. Osea, que un Acelerador de php, no es más que un "cacheador" de opcodes.
Imaginaos cuánto tiempo y recursos ahorramos al evitar el compilado de toda nuestra home, o de nuestras páginas más visitadas.

La mejora de rendimiento es asombrosa, incluso podremos llegar a ver mejorado el rendimiento de carga de algunas páginas por 3.

Ésta es una de la mejoras de optimización más sencillas que podemos llevar a cabo en nuestro servidor web, y sin duda una de las mejores en relación dificultad de aplicación / mejoras claramente visibles obtenidas.

Existen muchos Aceleradores de php , como APC, eAccelerator, xCache , PHPA, ...
Para gustos, colores. Seguro que encontrarás rápidamente un montón de comparativas, articulos a favor, en contra, y demás ...

Yo voy a explicar cómo instalar xCache (en una máquina Ubuntu). Por su extrema sencillez de instalación y excelente rendimiento.

Instalación de xCache en Ubuntu

Lo primero que vamos a hacer, descargarnos la última versión de xcache desde su web oficial. (En el momento de escribir ésto, la última versión era la 1.2.2. Para futuras versiones sustituir el archivo por su versión actual)

CODE:
  1. wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz

Descomprimimios nuestro archivo recién descargado.

CODE:
  1. tar -zxf xcache-*.tar.gz
  2. cd xcache

El siguiente paso es preparar nuestro xcache para su compilación, compilarlo e instalarlo

CODE:
  1. phpize
  2. ./configure --enable-xcache
  3. make
  4. sudo make install

Nota: phpize es un script de shell que prepara las extensiones de php para su correcta compilación. Si no se encuentra instalado, simplemente instala el paquete php5-dev, que lo incluye

CODE:
  1. sudo apt-get install php5-dev

Para finalizar ya solo queda configurar nuestro php.ini. Simplemente concatenamos el archivo de configuración por defecto a nuestro php.ini, lo editamos, y nos aseguramos de que la ruta extensión esté apuntando correctamente. Posteriormente reiniciamos el servicio de Apache

CODE:
  1. cat xcache.ini >> /etc/php5/apache2/php.ini
  2. nano /etc/php5/apache2/php.ini
  3. /etc/init.d/apache2 restart

En mi caso la extensión estaba en /usr/lib/php5/20060613/xcache.so.

CODE:
  1. zend_extension = /usr/lib/php5/20060613/xcache.so




Instalar Interfaz Web

Una de las cosas buenas que tiene xCache, es que dispone de una interfaz web, que además de confirmarnos que xcache está correctamente instalado (una razón más que válida para instalarla :P ), nos dará unas estadísticas bastante detalladas sobre el cacheo de opcodes.
Para instalarlo no hay más que copiar la carpeta admin que encontraremos dentro de nuestro xcache recien descargado y descomprimido, y pegarla en nuestra raiz de apache.

CODE:
  1. cp -a admin/* /var/www/xcache-admin/

Podemos (y debemos :P ) configurar nuestro acceso a la interfaz de xcache desde nuestro php.ini asignando los valores a las opciones xcache.admin.user y xcache.admin.pass (esta última debe ir codificada en md5)

CODE:
  1. xcache.admin.user = "admin"
  2. xcache.admin.pass = "5f4dcc3b5aa765d61d8327deb882cf99"

Después de ésto ya no queda más que reiniciar nuestro servicio de Apache y probar que todo ha ido bien y nuestro xcache está cacheando correctamente. Nuestra url debería ser algo parecido a www.dominio.com/xcache-admin y estaría protegido por contraseña.



Bueno, espero que sea útil.
Un saludo !

4 Comentarios

  1. Harris says:

    aptitude install php5-xcache
    para ubuntu te quita muchos problemas. No es la ultima version pero esta bien. Lo unico que tendrias que hacer es setear las varibles de tamaño de la cache y el interfaz web et voila. :-P

  2. fillito says:

    Cómo no ? mi maestro Harris siempre con una solución mejor ;)

    Gracias tio !

    En breve me gustaría escribir una entrada sobre cómo configurar y optimizar xCache

Deja un Comentario