Error «Strict Standards…» instalando Joomla 1.7.3

Joomla es un sistema de gestión de contenidos (CSM-Content Management System)  y un framework para aplicaciones web. Entre sus principales virtudes está la de permitir editar el contenido de un sitio web de manera sencilla.
Es una aplicación de código abierto programada mayoritariamente en PHP bajo una licencia GPL.  Para trabajar con este gestor de contenidos se requiere de una base de datos MySQL y de un servidor Web, preferiblemente Apache.
La instalación de Joomla 1.7.3 se realizó en un entorno de red como el que se muestra a continuación:

Disponemos de un servidor principal (192.168.2.30) en el cual se ha instalado el paquete XAMPP que nos dará los servicios necesarios para el funcionamiento de Joomla. En la red existe otro servidor (192.168.2.31) en el que tenemos el SGBD MySQL.
Las versiones de XAMPP, PHP y Apache que disponemos en nuestra red, se muestran a continuación:

El servidor de Bases de Datos posee la versión  5.5.16 de MySQL. Y el sistema operativo es Debian 2.0.
Una vez que conocemos el entorno de la instalación, pasamos a describir y solucionar el error. Durante el proceso de instalación de Joomla, aparece en la pantalla el siguiente mensaje:
Strict Standards: Accessing static property JCache::$_handler as non static in C:\xampp\htdocs\joomla\libraries\joomla\cache\cache.php on line 420
Strict Standards: Accessing static property JCache::$_handler as non static in C:\xampp\htdocs\joomla\libraries\joomla\cache\cache.php on line 422
La instalación finaliza correctamente. Pero el error sigue presente en toda la página de login como podemos ver en la siguiente captura:
ErrorDicho error apunta a un fichero llamado cache.php que se encuentra entre los directorios de instalación de Joomla. Y además nos informa las líneas que generan dicho error.
Para solucionar el error, existen dos opciones:

  • Editar el archivo \configuration.php y cambiar la siguiente línea como se muestra a continuación:

[crayon lang=»php»]public $error_reporting = ‘-1’;[/crayon]

     Por esta otra:  

[crayon lang=»php»]public $error_reporting = ‘6143’;[/crayon]

  • O, editar el archivo C:\xampp\htdocs\Joomla173\libraries\joomla\cache.php y sustituir este parámetro en las líneas afectadas:

[crayon lang=»php»]$this->_handler[/crayon]

                   Por este otro:

[crayon lang=»php»]JCache::$_handler[/crayon]

Quedando el código de la siguiente manera:

[crayon lang=»php»]public function &_getStorage()
{
if(!isset($this->_handler)) {
JCache::$_handler = JCacheStorage::getInstance($this->_options[‘storage’], $this->_options);
}
return JCache::$_handler;
}[/crayon]

La primera opción establece el nivel de notificación de errores pasándole una constante predefinida. Y la segunda, establece unos valores para manejar la cache de almacenamiento. Algunos de los niveles que se pueden establecer en la notificación de los errores son estos:

// Desactivar toda notificación de error

[crayon lang=»php»]error_reporting(0);[/crayon]
// Notificar solamente errores de ejecución
[crayon lang=»php»]error_reporting(E_ERROR | E_WARNING | E_PARSE);[/crayon]
// Notificar E_NOTICE también puede ser bueno (para informar de variables
// no inicializadas o capturar errores en nombres de variables …)
[crayon lang=»php»]error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);[/crayon]
// Notificar todos los errores excepto E_NOTICE
// Este es el valor predeterminado establecido en php.ini
[crayon lang=»php»]error_reporting(E_ALL ^ E_NOTICE);[/crayon]
// Notificar todos los errores de PHP (ver el registro de cambios)
[crayon lang=»php»]error_reporting(E_ALL); = (‘6143’);[/crayon]
// Notificar todos los errores de PHP
[crayon lang=»php»]error_reporting(-1);[/crayon]
// Lo mismo que error_reporting(E_ALL);
[crayon lang=»php»]ini_set(‘error_reporting’, E_ALL);[/crayon]
Con esto se solucionó el problema perfectamente. Desde aquí agradecer a otros usuarios la información compartida.  Ya tenemos un potente gestor de contenidos listo para ponerlo en marcha. Un saludo.