5Mayo2016Timeout

Problema:

  • Se necesita incrementar la cantidad de tiempo que le toma una aplicación en PHP para ejecutarse, antes de que nuestro servidor decida detener el proceso (PHP session timeout). Si bien conviene por eficiencia tener este valor bajo, hay aplicaciones que por diseño necesitan valores más altos, o situaciones específicas que lo requieren (actualización de aplicativos, carga de datos).

Solución utilizada:

  • Si no se recuerda o conoce el manejador de PHP que se está ejecutando (¿cómo usa la máquina usa PHP? ...por medio de mod_php (Apache DSO, Dinamic Shared Object), suPHP, FastCGI, CGI o PHP-FPM), un pequeño script en la carpeta web del sitio (el nombre del script lo colocan ustedes, la ruta depende del servidor), con las siguientes líneas, nos puede confirmar la ruta del archivo principal php.ini (obviamente no se recomienda tenerlo activo en producción):
    • <?php
      phpinfo();
      ?>
  • Hay dos variables a modificar: max_input_time (tiempo máximo disponible para desplegar/analizar datos de entrada para el script PHP) y max_execution_time (tiempo total permitido de ejecución para el script de PHP). Ambas tienen asignado por defecto 60 segundos, este sería el valor a incrementar (en una actualización de Moodle (por ejemplo) fué necesario aumentar su valor a 120 segundos).
  • Si se utiliza PHP por medio de PHP-FPM, es posible aumentar este valor en la variable request_terminate_timeout del archivo de configuración de este servicio.
  • Para que los cambios se actualicen en el sistema, es necesario reiniciar servicios:
    • service httpd reload
    • service php5-fpm reload #en caso de usar php-fpm

Imagen Original (CC Atribución): https://flic.kr/p/aVdo7v

Fuentes Consultadas:

Comments powered by CComment

.