¿Qué es el Error Maximum Execution Time Exceeded en PHP?
El error Maximum Execution Time Exceeded ocurre cuando un script de PHP tarda más tiempo en ejecutarse del límite predeterminado establecido en el archivo de configuración del servidor (generalmente 30 segundos). Esto es muy común al procesar consultas grandes en bases de datos, subir archivos pesados o realizar peticiones a APIs externas lentas.
Principales Causas del Problema
Las razones más habituales por las que se detiene la ejecución de tu código son:
- Bucle infinito en la lógica del programa.
- Consultas SQL muy pesadas o mal optimizadas.
- Descarga o procesamiento de archivos de gran tamaño.
- Configuración predeterminada de PHP demasiado restrictiva.
Método 1: Modificar el tiempo de ejecución desde el código PHP
Si tienes acceso al script que está fallando o a un archivo de inicialización (como functions.php en WordPress), puedes aumentar el tiempo de ejecución directamente usando la función set_time_limit().
- Abre tu archivo PHP principal o el script que genera el error.
- Añade la siguiente línea al comienzo del archivo:
<?php set_time_limit(300); // Establece el límite en 300 segundos (5 minutos) ?> - Guarda los cambios y recarga la página para verificar si el script finaliza correctamente.
Método 2: Modificar el archivo php.ini
La forma más profesional y global de solucionar este problema en un servidor propio o VPS es editando directamente el archivo de configuración principal de PHP, llamado php.ini.
- Localiza tu archivo
php.ini(suele estar en directorios como/etc/php/8.1/apache2/php.inio mediante tu panel de control como cPanel o Plesk). - Busca la directiva llamada
max_execution_time. - Cambia el valor predeterminado por uno mayor, por ejemplo:
max_execution_time = 300 - Guarda el archivo y reinicia tu servidor web (Apache o Nginx) para aplicar los cambios:
sudo systemctl restart apache2
Método 3: Modificar el archivo .htaccess (Servidores Apache)
Si utilizas un alojamiento compartido y no tienes acceso al archivo php.ini, es muy probable que tu servidor utilice Apache y te permita modificar los parámetros mediante el archivo .htaccess.
- Accede al directorio raíz de tu proyecto web utilizando un cliente FTP o el Administrador de Archivos de tu hosting.
- Busca el archivo oculto llamado
.htaccess(si no existe, puedes crearlo). - Añade la siguiente línea al final del archivo:
php_value max_execution_time 300 - Guarda los cambios y comprueba que el error haya desaparecido definitivamente.