¿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 a los que se enfrentan los desarrolladores web. Ocurre cuando un script de PHP tarda más tiempo en ejecutarse que el límite predeterminado establecido en el servidor (que por defecto suele ser de 30 segundos). Esto es muy frecuente al realizar consultas pesadas a bases de datos, procesar archivos grandes, importar datos o ejecutar bucles infinitos.
Causas principales del error
- Bucles infinitos o mal optimizados dentro del código fuente.
- Consultas SQL lentas o ineficientes que sobrecargan el servidor.
- Procesamiento de imágenes, PDFs o archivos de gran tamaño.
- Configuración predeterminada del servidor PHP demasiado restrictiva.
Método 1: Modificar el archivo php.ini
La forma más permanente y limpia de solucionar este problema a nivel de servidor es editando el archivo de configuración principal de PHP, php.ini.
- Localiza tu archivo
php.inien tu servidor local o mediante el panel de control de tu hosting (cPanel). - Abre el archivo con un editor de texto y busca la directiva llamada
max_execution_time. - Cambia el valor por defecto (por ejemplo, 30) a un número mayor, como 300 (segundos) o 0 para ilimitado (aunque no se recomienda por seguridad):
max_execution_time = 300 - Guarda los cambios y reinicia tu servidor web (Apache o Nginx) para aplicar las nuevas configuraciones.
Método 2: Aumentar el tiempo mediante .htaccess (Apache)
Si utilizas un servidor web Apache y no tienes acceso directo al archivo php.ini global, puedes utilizar el archivo .htaccess ubicado en la raíz de tu proyecto.
- Accede a los archivos de tu sitio web mediante FTP o el Administrador de Archivos.
- Busca o crea el archivo llamado
.htaccessen el directorio raíz. - Añade la siguiente línea de código al final del archivo:
php_value max_execution_time 300 - Guarda el archivo y recarga tu página web para verificar que el error haya desaparecido.
Método 3: Cambiar el límite directamente desde el código PHP
Si necesitas solucionar el problema de forma puntual para un script específico sin alterar la configuración global del servidor, puedes utilizar la función set_time_limit() al inicio de tu archivo PHP.
- Abre el archivo PHP que está generando el error de tiempo de ejecución.
- Agrega la siguiente línea en la parte superior del script, justo después de la etiqueta de apertura de PHP:
- Guarda los cambios y prueba ejecutar el script nuevamente. Si el problema persiste, considera optimizar tus consultas y algoritmos para mejorar el rendimiento general.