Resolviendo algunos errores que se pueden presentar en el proceso (ver actualización al final)
APC cache es un poderoso sistema de caché que sirve para almacenar código PHP compilado (por mod_php) y datos del navegador del usuario por lo que permite al servidor web (Apache HTTPD), procesar un mayor número de peticiones por segundo. Está soportado por los principales Gestores de contenido (CMS) como Joomla o Wordpress.
Para detectar si tenemos instalada la última versión de APC cache debemos revisarlo en el monitor de APC en línea para nuestro sitio web. No entro en este artículo como instalar APC pues hay multitud de guías en internet, me centraré en la actualización. Para montar un monitor en línea, si no lo tenéis todavía, abrir una consola y teclear las siguientes instrucciones (para Centos 6):
# cp /usr/share/php-pecl-apc/apc.php /home/tu-sitio/public_html
Con esto tendremos el monitor de APC en la raíz de nuestro servidor web (se puede colocar en un directorio creado sólo para este fin) y si lo abrimos en un navegador web (http://misitio.com/apc.php) tendrá este aspecto:
Al pulsar el botón Versión Check el sistema nos dirá si hay una versión más nueva (en este caso ya la tengo actualizada):
Si al chequear la versión nos aparece que debemos actualizarla seguiremos los siguientes pasos:
Actualizamos canales:
# pear update-chanels
Se pueden ver también los paquetes pendientes y a qué versiones corresponden:
# pear list-upgrades
Después, en lugar de usar el comando pear upgrade APC, usaremos:
# pecl upgrade APC
Aceptaremos las configuraciones por defecto y reiniciamos Apache:
# service httpd graceful
NOTA: La actualización necesita que el directorio /tmp sea ejecutable sino dará este error: shtool at '/tmp/APC/build/shtool' does not exist or is not executable
Para permitir momentáneamente ejecutables en /tmp escribiremos:
# mount -o remount,exec /tmp
y volveremos a ejecutar la actualización de APC y reiniciar el Apache:
# pecl upgrade APC
# service httpd graceful
Luego dejaremos el directorio /tmp como estaba:
# mount -o remount,noexec /tmp
A mí me ha pasado que se cayó el servidor web Apache al no encontrar el socket:
# Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
# (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
En este caso mataremos todos los procesos de Apache e iniciaremos el servidor web:
# killall -9 httpd
# /etc/init.d/httpd start
Al comprobar de nuevo la versión en el monitor ya os debe aparecer actualizada como en la imagen de más arriba.
Actualización:
Después de realizar todos los pasos señalados más arriba se me presentaron errores en alguna web con Joomla 3.0 y no cargaba el administrador de MySQL phpMyAdmin. Pensando un poco llegue a la conclusión de que debería haber alguna antigua versión de APC Cache instalada en Centos con el comando yum. Efectivamente ejecutando:
# yum remove php-pecl-apc
Existía una versión instalada de APC Cache. Así que lanzamos la instrucción de más arriba para desinstalarla.
Luego realizaremos los pasos siguientes pasos (algo direferentes a los de arriba):
# pecl uninstall apc
# mount -o remount,exec /tmp
# pecl install apc
Con estas opciones:
Enable internal debugging in APC [no] :
Enable per request file info about files used from the APC cache [no] :
Enable spin locks (EXPERIMENTAL) [no] :
Enable memory protection (EXPERIMENTAL) [no] :
Enable pthread mutexes (default) [yes] :
Enable pthread read/write locks (EXPERIMENTAL) [no] :
# echo "extension=apc.so" > /etc/php.d/apc.ini
# mount -o remount,noexec /tmp
# service httpd restart (o /etc/init.d/httpd restart)
Para verificar si está corriendo APC Cache, se pueder crear en la raíz de tu sitio web un archivo llamado por ejemplo phpinfo.php con estas líneas:
<?php
// Show all information, defaults to INFO_ALL
phpinfo();
?>
Lo subimos mediante FTP y lo visualizamos en el navegador: http://misitio.com/phpinfo.php