¿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 tarda más tiempo del permitido por la configuración del servidor en completarse. Por defecto, PHP establece un límite de 30 segundos para evitar que scripts mal optimizados o bucles infinitos consuman todos los recursos del servidor.
Causas principales del error
Este fallo suele presentarse en situaciones muy específicas dentro de proyectos web y aplicaciones de desarrollo:
- Procesamiento de consultas pesadas o grandes volúmenes de datos en bases de datos MySQL.
- Tareas de importación masiva de archivos CSV, XML o JSON de gran tamaño.
- Bucles infinitos o algoritmos con una complejidad computacional muy alta.
- Conexiones lentas a APIs externas o servicios de terceros que tardan en responder.
- Migraciones de datos en CMS complejos como WordPress, Magento o PrestaShop.
Método 1: Modificar el tiempo de ejecución en el archivo php.ini
La forma más limpia y permanente de solucionar este problema a nivel de servidor es modificando directamente el archivo de configuración global php.ini.
- Localiza tu archivo
php.inien tu servidor local o remoto (suele estar en la carpeta de instalación de PHP o en la configuración de XAMPP/WAMP). - Ábrelo con un editor de texto y busca la directiva
max_execution_time. - Cambia el valor por defecto a un tiempo mayor, por ejemplo, 300 segundos (5 minutos):
max_execution_time = 300 - Guarda los cambios y reinicia tu servidor web (Apache, Nginx o PHP-FPM) para aplicar la nueva configuración.
Método 2: Aumentar el límite desde el archivo .htaccess (Apache)
Si estás utilizando un servidor web Apache y no tienes acceso al archivo php.ini principal, puedes sobrescribir esta directiva utilizando el archivo .htaccess ubicado en la raíz de tu proyecto.
- Accede al directorio raíz de tu sitio web mediante FTP o el explorador de archivos de tu hosting.
- Busca el archivo
.htaccess(asegúrate de mostrar los archivos ocultos si es necesario). - Agrega 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 comprobar que el error ha desaparecido.
Método 3: Modificar el tiempo de ejecución directamente en el código PHP
Si solo necesitas aplicar este cambio de forma puntual para un script específico (como una importación pesada), puedes utilizar la función nativa ini_set() o set_time_limit() al comienzo de tu archivo PHP.
- Abre el archivo PHP donde ocurre el error de tiempo de espera.
- Inserta la siguiente función justo al inicio del script antes de ejecutar la tarea pesada:
<?php set_time_limit(300); ?> - Alternativamente, puedes usar:
<?php ini_set('max_execution_time', '300'); ?> - Guarda el archivo y prueba ejecutar nuevamente tu script. Nota: Esta opción no funcionará si tu proveedor de hosting tiene deshabilitadas estas funciones por motivos de seguridad en modo
safe_mode.