Detectando Errores..

El propósito de este tema, es recopilar información de las distintas preguntas de los usuarios, para ayudar a detectar los errores más comunes al instalar la aplicación.

Configurar PHP para que notifique los errores

  • Ubicar el archivo de configuración de PHP, por lo general se encuentra en /etc/php5/apache2/php.ini
  • Encontrar en este archivo, las lineas que contienen las sentencias error_reporting y display_errors, y verificar que quede de la siguiente manera:
    (asegurarse de que no estén comentadas ni redefinidas más abajo en el mismo archivo).

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = On

(display_errors = On no recomendado en ambientes de producción)

  • guardar los cambios del archivo y reiniciar el servicio de apache.

Chequear los archivos de logs de la aplicación

  • Los archivos de logs se encuentran en:

[path_aplicacion]:/instalacion/logs/[punto de acceso]/

  • Si la carpeta está vacía, verificar:

  • Que el usuario con el cual se ejecuta apache, tenga permiso de escritura en esa carpeta

  • No tener desactivado el log, en el archivo config.php
    Debería estar de la siguiente manera:


'log' =>
         array(
              'activo' => true,
              'nivel' => 'debug',
.....

Chequear el log de Apache

  • Generalmente el log de apache se ubica en: /var/log/apache2/error.log

Algunos errores comunes, que hacen que la aplicación presente una página en blanco

  • Tener la Aplicación en producción (produccion = true en config.php) y no están compilados los recursos (Instructivo puesta en producción versión 2.8.3)
  • Tener la Aplicación configurada para iniciar con un archivo de debug (ini_debug = true en config.php) y no tener un archivo debug.php en la carpeta [path_aplicacion]/src/siu (en general poner ini_debug = false)
  • No tener los permisos, para que el usuario con el cual se ejecuta apache, pueda escribir en las carpetas correspondientes. Instructivo instalación versión 2.8.3
  • Tener mal configurado el archivo instalacion/alias.conf, ver el siguiente foro alias.conf mal configurado
  • Tener mal configurado el parámetro client_locale en el archivo instalacion/config.conf, ver el siguiente foro client_locale mal configurado

Funciona el test de conexión pero el aplicativo no se conecta a la base de datos

  • Corroborar que estén definidas las variables de entorno de informix para el usuario que corre apache

Por ejemplo, en una instalación sobre Debian, en el archivo /etc/apache2/envvars agregar las siguientes líneas y luego reiniciar apache:


export INFORMIXDIR=/opt/informix
export INFORMIXSQLHOSTS=/opt/informix/etc/sqlhosts

Error ReflectionException

Este es otro error muy común que se da en G3W2 2.8.3, en los archivos de log muestra lo siguiente:


================================================================================
=================================   ERRORES   ==================================
================================================================================

clase: ReflectionException
mensaje: Class siu\extension_kernel\formularios\elementos\guarani_vista_default does not have a constructor, so you cannot pass any constructor arguments
traza: [TRAZA]
...
...

El error se debe a un bug de PHP (https://bugs.php.net/bug.php?id=52854) que se soluciona en la versión PHP 5.3.4 y posteriores.

En caso de no poder actualizar PHP se puede solucionar manualmente, en la clase src/siu/lib/kernel/nucleo/localizador.php, función instanciar_params_array reemplazar lo siguiente:

return $reflejo->newInstanceArgs($parametros);

por


if(empty($parametros)){
            $objeto = $reflejo->newInstanceArgs();
}
else{
            $objeto = $reflejo->newInstanceArgs($parametros);
}
return $objeto;

Leonel, los Warnings y Notice que aparecen en el log, los ignoramos o se los enviamos para analizar?

Si son Warnings y Notices que se generan en operaciones del core (operaciones que vienen con la aplicación que no fueron personalizadas) envíenlos, si se generan en una personalización lo tiene que corregir la institución que esta personalizando.

Al pasar el 3W de desarrollo a producción dar permisos de escritura al usuario Apache sobre la carpeta instalacion/temp, ya que en dicha carpeta se almacenan los archivos twig compilados, el comando seria:


chown [USUARIO]:www-data [PATH_TO_3W]/instalacion/temp -R
chmod 0775 [PATH_TO_3W]/instalacion/temp -R

saludos.