Instalar eAccelerator

Una de las formas de mejorar el rendimiento de un servidor con páginas web en PHP es la instalación de un sistema cache como módulo del intérprete de PHP instalado en el servidor. El uso de estos sistemas puede mejorar el rendimiento del servidor entre un 20% y un 50%. Entre los sistemas más populares que podemos encontrar se encuentran Zend Optimizer, IonCube o eAccelerator.
Vamos a centrarnos en éste último y veremos como instalarlo paso a paso sobre un servidor Linux desde los fuentes. Para poder compilar correctamente eAccelerator debes tener instalado phpize, en Fedora puedes obtenerlo usando yum install php-devel, en Debian apt-get install php-dev.
Lo primero es descargar el paguete correspondiente a la última versión de eAccelerator (en este caso la 0.9.5.3). Podemos elegir descargarlo en .tar.bz2 o .zip, usaremos el .tar.bz2 y lo descargamos, descomprimimos y entramos en el directorio:

wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2
tar jvxf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3

Una vez dentro del directorio, vamos a empezar a compilar los fuentes. Si sólo tienes un intérprete de PHP instalado (suele ser lo más habitual) puedes ejecutar:

phpize
./configure
make

En caso de tener más de una instalación deberás indicar donde se encuentra la que quieres usar. Sustituye la ruta en la primera línea (/usr/php) por aquella donde tengas instalado PHP:

PHP_PREFIX="/usr/php"
$PHP_PREFIX/bin/phpize
./configure –enable-eaccelerator=shared –with-php-config=$PHP_PREFIX/bin/php-config
make

Realizado esto ya tenemos el módulo preparado para su instalación, ejecutamos:
make install
Una vez terminada la instalación se nos mostrará la ruta donde se ha copiado el módulo del eAccelerator que debemos configurar en el php.ini, si todo ha ido bien debes tener algo como esto:

Installing shared extensions:    /usr/lib/php/modules/20080501/

Ahora debemos indicar en el php.ini nuestro nuevo módulo para que sea cargado con el intérprete. Abrimos el php.ini, si no sabes donde está localizado ejecuta phpinfo(). Editamos el archivo y buscamos una sección llamada "Dynamic Extensions". Buscamos una directiva llamada extension_dir y la definimos con la ruta donde guardamos las extensiones:

extension_dir = "/usr/php/modulos/"

A continuación agregamos las siguientes líneas que incluyen el nombre del módulo y su configuración:

extension="eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"

Guardamos el php.ini y ahora debemos crear el directorio temporal que usará eAccelerator, definido en la configuración que acabamos de agregar al php.ini como eaccelerator.cache, este directorio debe tener permisos de escritura:

mkdir /tmp/eaccelerator/
chmod 777 /tmp/eaccelerator/

Termidamo esto ya tenemos eAccelerator intalado en nuestro servidor. Sólo falta reiniciar apache para que la nueva configuración tenga efecto.

14 comentarios en «Instalar eAccelerator»

  1. Muchisimas gracias, tu tutorial me ayudo a la perfeccion, unicamente deberias añadir que se revise tener instalado el compilador gcc ya que si no lo tienes te sale el error:

    no acceptable C compiler found in $PATH

    y debes instalarlo manualmente:

    yum install gcc

    Pero con todo superado ese inconveniento todo estuvo super bien y lo estaba instalando en un servidor remoto mediante SSH.

    Saludos y muchas gracias.

  2. Hola buen dia, gracias por el tutorial solo una cosa, en el paso donde te deberia de generar el path:

    Installing shared extensions: /usr/lib/php/modules/20080501/

    a mi me lo genero pero en:

    Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20060613/

    no se si hubo algun problema al momento de la instalacion, o le continuo la instalacion. espero me puedan ayudar. saludos

  3. @Johnatan, no te preocupes porque sea diferente el path, es igual que esté en un sitio o en otro. Unicamente usa el que te generó para colocarlo en el php.ini

  4. @Johnatan, en el infophp que muestras no aparece como que esté instalado eAcelerator. De todos modos tienes otro acelerador, el de Zend, el Zend Optimizer.

    Busca «with Zend Optimizer v3.3.3», verás que aparece donde está el logo de Zend Engine 2.

    Aunque supongo que ya lo habrás hecho, ¿has reiniciado apache?

  5. amigos e Accelerator me sirve para reducir el consumo de RAM por parte de Apache. Estoy teniendo problemas con el agotamiento de RAM y una de las cosas q mas me consume RAM es Apache. Mas q mysql.

    Saludos. espero resp.

  6. Hola buenas, me gustaría poder contactar con alguien que me pudiese ayudar a ejecutarlo en mi servidor porque no sé como llegar hasta los parámetros que menciona el tutorial.
    Gracias y saludos.

  7. Hola,
    Estoy intentando instalar eaccelerator, pero me quedo bloqueado en phpize. Me indica que no encuentra el comando.
    También he puesto la ruta directa a php mediante php_prefix=/usr/… Parece que lo acepta pero después ya no reconoce el comando siguiente $php_prefix/bin/phpize. De hecho este archivo no existe en esa dirección y no creo que lo tenga en ninguna parte.
    ¿Qué puedo hacer?
    Gracias

  8. finalmente he podido resolver el problema con phpize, sinembargo, como esto es sinduda como la travesía del desierto, ahora estoy bloqueado con php.ini, puesto que no encuentro ningún extension_dir.
    ¿Debo abrirlo manualmente y pegar la extensión y los módulos manualmente?

  9. Si no tienes un extension_dir en el php.ini debes agregarlo para indicarle donde estarán las extensiones. De todos modos es bastante raro que no tengas extensiones en el php.ini, aunque esté comentado.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *