Introducción al Error Maximum Execution Time Exceeded
Cuando desarrollamos aplicaciones web en PHP, es común encontrarnos con el temido mensaje Fatal error: Maximum execution time of 30 seconds exceeded. Este inconveniente detiene la ejecución de nuestros scripts y puede afectar la experiencia del usuario o interrumpir procesos pesados en segundo plano.
Causas Principales del Error
El núcleo de este problema es simple: PHP tiene un límite de tiempo predeterminado (usualmente 30 segundos) para que cualquier script termine de ejecutarse. Si el servidor tarda más debido a bucles infinitos, consultas SQL lentas o procesamiento masivo de datos, se dispara esta excepción.
- Bucles infinitos o mal optimizados en el código fuente.
- Consultas a bases de datos grandes o mal indexadas que demoran en responder.
- Importación o procesamiento de archivos pesados (CSV, XML, imágenes).
- Límites estrictos configurados en el archivo
php.ini.
Método 1: Aumentar el límite de tiempo mediante código PHP
La forma más rápida de solucionar este problema para un script específico es declarar la función set_time_limit() al inicio de tu archivo PHP.
- Abre el archivo PHP donde ocurre el error.
- Agrega la siguiente línea al principio del archivo:
<?php set_time_limit(300); ?>(Esto aumentará el límite a 300 segundos o 5 minutos). - Guarda los cambios y recarga la página para verificar que el script finalice correctamente.
Método 2: Modificar el archivo php.ini
Si deseas aplicar una solución global para todo tu servidor o entorno de desarrollo local, debes editar la configuración general de PHP.
- Localiza y abre tu archivo
php.ini(su ubicación varía según tu sistema operativo y servidor web como XAMPP o Apache). - Busca la directiva
max_execution_time. - Cambia el valor por defecto de
30a un número mayor, por ejemplo:max_execution_time = 300. - Guarda el archivo y reinicia tu servidor web (Apache, NGINX) para aplicar los cambios.
Método 3: Ajustar la configuración en archivos .htaccess
Si utilizas un servidor Apache y no tienes acceso directo al archivo php.ini, puedes utilizar el archivo .htaccess ubicado en la raíz de tu proyecto.
- Abre el archivo
.htaccessde tu proyecto (si no existe, puedes crearlo). - Añade la siguiente línea al archivo:
php_value max_execution_time 300. - Guarda el archivo y comprueba si el error ha desaparecido en tu navegador.