Introducción al Error Maximum Execution Time Exceeded en PHP
Uno de los problemas más frustrantes con los que se encuentran los desarrolladores web al trabajar con scripts pesados, migraciones de bases de datos o procesamiento de grandes volúmenes de datos es el Fatal error: Maximum execution time of 30 seconds exceeded. Este fallo ocurre cuando un script PHP tarda más tiempo del configurado por defecto en completarse.
Causas Principales del Problema
El servidor web (generalmente Apache o Nginx con PHP-FPM) establece un límite de tiempo para evitar que scripts mal optimizados o bucles infinitos consuman todos los recursos del sistema. Las causas más comunes incluyen:
- Consultas SQL lentas o ineficientes que procesan miles de registros.
- Bucles mal estructurados o infinitos en el código fuente.
- Descargas o cargas de archivos pesados a través de la red.
- Tareas de importación masiva en CMS como WordPress, Magento o PrestaShop.
Método 1: Modificar el Archivo php.ini (Recomendado)
La forma más limpia y permanente de solucionar este inconveniente es ajustar el parámetro max_execution_time directamente en el archivo de configuración global de PHP.
- Localiza tu archivo
php.inien tu servidor (suele estar en/etc/php/8.x/apache2/php.inio mediante tu panel de control como cPanel). - Abre el archivo con un editor de texto con privilegios de administrador.
- Busca la línea que contiene
max_execution_time. - Cambia el valor por defecto de 30 segundos a un número mayor, por ejemplo, 300 segundos (5 minutos):
max_execution_time = 300 - Guarda los cambios y reinicia tu servidor web ejecutando
sudo systemctl restart apache2o el servicio correspondiente.
Método 2: Aumentar el Tiempo Límite Mediante la Función ini_set()
Si no tienes acceso al archivo de configuración global del servidor (por ejemplo, en un hosting compartido), puedes modificar este valor directamente en la cabecera de tu script PHP problemático.
- Abre el archivo PHP donde ocurre el error.
- Añade la siguiente línea al comienzo del script, justo después de la etiqueta de apertura de PHP:
ini_set('max_execution_time', '300'); - Guarda el archivo y vuelve a probar la ejecución en tu navegador.
Método 3: Configurar .htaccess (Para Servidores Apache)
Otra alternativa muy útil en entornos de hosting compartido con Apache es utilizar el archivo de configuración del directorio.
- Accede al directorio raíz de tu proyecto mediante FTP o el Administrador de Archivos.
- Busca o crea un archivo llamado
.htaccess. - Añade la siguiente directiva al final del archivo:
php_value max_execution_time 300 - Guarda los cambios y recarga tu sitio web para aplicar la configuración.