Solucionar problemas

Maximum execution time of X seconds exceeded in x.php

Revisado el 3 min de lectura errores php php

El mensaje:

Maximum execution time of X seconds exceeded in x.php

confirma que el proceso alcanzó el límite max_execution_time de PHP. El fichero y la línea indican dónde se agotó el temporizador, pero no demuestran por sí solos qué componente consumió el tiempo.

Reproduce la operación exacta y consulta primero el registro de la aplicación y de PHP. Si se trata de una petición lenta reproducible, utiliza PHP X-Ray para comprobar si el tiempo se concentra en una consulta SQL, una llamada externa, una función o un componente concreto. Descarta también bucles, reintentos y volúmenes de datos inesperados.

Solo amplía el límite cuando la operación sea legítima, acotada y razonablemente necesite más tiempo. Comprueba qué versión de PHP ejecuta la ruta, accede a cPanel > Seleccionar versión de PHP > Options y fija max_execution_time en el menor valor finito que permita completar la prueba. El cambio afecta a todas las webs que utilicen esa versión.

No aumentes el valor progresivamente hasta que el error desaparezca y no lo establezcas sin límite. PHP utiliza este temporizador como protección frente a scripts defectuosos. Además, el servidor web y otros componentes pueden aplicar tiempos de espera independientes.

Después de la prueba, restaura el valor anterior. Si el proceso vuelve a agotar un valor razonable, corrige la operación o el componente identificado en lugar de seguir ampliándolo. Si sospechas una limitación de recursos, comprueba los fallos registrados de CPU, memoria, entrada, IO o procesos: un consumo alto sin un fallo de límite no demuestra que ese límite haya terminado o ralentizado la petición.

Tiempo de PHP y tiempo total de la petición

En sistemas Unix, max_execution_time no mide necesariamente todo el tiempo de reloj transcurrido: esperas de ciertas operaciones externas pueden quedar fuera de su cómputo. En Windows su comportamiento es distinto. Por eso un tiempo total observado en el navegador no se compara directamente con ese límite. Consulta la definición de PHP.

Para importaciones o trabajos largos, valora dividir el trabajo en lotes o ejecutarlo mediante una tarea CLI compatible, con control de errores y progreso. CLI también puede tener límites propios y no evita cuotas del hosting. Antes de reintentar una operación interrumpida, comprueba qué datos ya se guardaron para no duplicarlos.

También te puede ayudar

¿Algo no cuadra o ha cambiado? Cuéntanoslo y lo revisamos.