¿Qué es el error Maximum Execution Time Exceeded en PHP?
El error Fatal error: Maximum execution time of 30 seconds exceeded es uno de los problemas más comunes en el desarrollo web con PHP. Ocurre cuando un script, como una consulta pesada a la base de datos, la importación de un archivo grande o un bucle infinito, tarda más tiempo del permitido por defecto en el servidor (generalmente 30 segundos) en completar su tarea.
Causas principales de este error
- Scripts que procesan grandes volúmenes de datos o bucles mal optimizados.
- Conexiones lentas a bases de datos o APIs externas que tardan en responder.
- Límites de tiempo de ejecución (
max_execution_time) configurados demasiado bajos en el archivophp.ini.
Métodos para solucionar el error de tiempo de ejecución
Método 1: Modificar el archivo php.ini (Recomendado para servidores propios)
Si tienes acceso completo a la configuración de tu servidor, puedes aumentar el límite de tiempo de forma global.
- Abre tu archivo de configuración
php.ini. - Busca la directiva
max_execution_time. - Cambia el valor por uno mayor o ponlo en 0 para ilimitado (no recomendado en producción):
max_execution_time = 300. - Guarda los cambios y reinicia tu servidor web (Apache o Nginx).
Método 2: Usar la función set_time_limit() en el código
Si no tienes acceso al php.ini, puedes declarar la directiva directamente al inicio del script PHP que genera el problema.
- Abre el archivo PHP afectado.
- Agrega la siguiente línea al principio del script:
<?php set_time_limit(300); ?>. - Guarda el archivo y vuelve a probar la ejecución en tu navegador.
Método 3: Modificar .htaccess (Para servidores Apache)
En servidores compartidos que usan Apache, puedes intentar sobrescribir la directiva mediante el archivo .htaccess.
- Accede al directorio raíz de tu proyecto mediante FTP o Administrador de Archivos.
- Busca o crea el archivo
.htaccess. - Añade la siguiente línea al final del archivo:
php_value max_execution_time 300. - Guarda los cambios y verifica si el error ha desaparecido.