UA-51298262-10 Skip to main content
cPanel

Aumentar max_execution_time en PHP

By agosto 28, 2026No Comments
Aumentar max_execution_time en PHP

Por qué es necesario aumentar max_execution_time en PHP

Esa pantalla blanca con el mensaje Fatal error: Maximum execution time of 30 seconds exceeded es una de las cosas más frustrantes que le pueden pasar a un administrador. Te detiene en seco. Esta directiva marca el tiempo máximo que el intérprete de PHP permite correr un script antes de cortarlo por seguridad. La necesidad de aumentar max_execution_time aparece cuando tareas reales y legítimas —como una importación masiva de datos, una copia de seguridad compleja o el procesamiento de imágenes pesadas— se quedan a medias por superar el límite por defecto.

Lo normal es que PHP venga configurado con 30 o 60 segundos. Para cargar una página rápida, está bien. Pero para operaciones que exigen más de la CPU o del disco, es poco tiempo. Si gestionas sitios web serios o servidores propios, ajustar este parámetro deja de ser opcional y pasa a ser una necesidad de estabilidad. En RedServicio (redservicio.net) sabemos que una configuración fina es la base de un buen rendimiento.

Método 1: Modificación del archivo php.ini

La forma más sólida de aumentar max_execution_time es ir directo al grano: editar el php.ini. Este método aplica el cambio de forma global o por dominio, según cómo tengas montado tu servidor (Apache, Nginx, lo que usemos).

Primero, toca localizar el archivo. Si no sabes dónde está, crea un info.php en tu carpeta pública y mete este código:

<?php phpinfo(); ?>

Una vez sepas la ruta, abre el archivo con tu editor de texto y busca la línea max_execution_time. Es probable que tenga un punto y coma delante (;), lo que significa que está comentada y usa el valor por defecto. Quita el punto y coma y pon el valor que necesites en segundos.

Para darle al script cinco minutos (300 segundos), la línea debe quedar así:

max_execution_time = 300

Guarda los cambios. Pero ojo, no servirá de nada si no reinicias el servicio web o PHP-FPM. En Linux, normalmente basta con:

service apache2 restart o service php-fpm restart

Cuándo usar este método

Es la opción ideal si tienes acceso root a un servidor (VPS o Dedicado) o si tu hosting te deja tocar estos archivos. Es la solución más estable; evita que una actualización del CMS o del tema borre tus ajustes.

Método 2: Configuración vía archivos .htaccess (Apache)

Si trabajas con Apache y no puedes tocar el php.ini, el archivo .htaccess en la raíz de tu instalación (a menudo en public_html) es tu mejor aliado. Es el truco típico de entornos de hosting compartido, donde no tienes privilegios de administrador.

Para aumentar max_execution_time aquí, solo añade esta línea al final del archivo:

php_value max_execution_time 300

El cambio suele ser inmediato. Apache lee estos archivos en cada petición, así que no hace falta reiniciar nada. Eso sí, cuidado: el administrador del servidor podría tener bloqueadas las directivas PHP en .htaccess por seguridad. Si al guardar ves un error 500 (Internal Server Error), es que te han cortado esa opción.

Consejo de seguridad: Si usas este método, asegúrate de que el archivo .htaccess no sea accesible públicamente, aunque normalmente el servidor ya se encarga de bloquearlo.

Método 3: Modificación en el archivo functions.php de WordPress

A los usuarios de WordPress que no quieren tocar archivos del servidor les gusta esta solución vía código. Puedes inyectar la configuración directamente en la ejecución del script poniendo unas líneas en el functions.php de tu tema activo. Mejor aún, hazlo en un plugin de funcionalidades específicas para no perderlo al cambiar el tema.

A veces este método choca con limitaciones del servidor (modo seguro o funciones deshabilitadas), pero en muchos casos salva la vida. El fragmento es este:

ini_set('max_execution_time', 300);

Esta función intenta sobrescribir el valor actual para la duración del script. Para que pille cuanto antes, pon la línea al principio del archivo functions.php. Ten en cuenta que esto ayuda con scripts individuales, pero no siempre arregla los procesos de fondo de WordPress (como actualizaciones o importaciones de WooCommerce), porque estos se ejecutan en un contexto diferente.

Método 4: Usando el archivo wp-config.php

Otra estrategia, esta vez específica para WordPress, es forzar el aumento en el archivo de configuración principal: wp-config.php. Como este archivo carga antes que nada, define el entorno para el resto de la aplicación.

Inserta estas líneas justo antes de donde dice «/* That’s all, stop editing! */»:

set_time_limit(300);

La función set_time_limit() reinicia el contador a cero. Si se llama dentro del script, el temporizador vuelve a empezar. Si el límite no estaba fijado en php.ini, usar set_time_limit(0) permitiría que el script corra para siempre. No es recomendable. Es mejor poner un valor alto pero finito para mantener la seguridad.

Verificación de los cambios realizados

No des por hecho que funciona solo porque guardaste el archivo. Tienes que comprobarlo. Carga de nuevo tu info.php (o crea uno temporal si lo borraste por seguridad) y busca la sección Core o busca directamente «max_execution_time».

El valor «Local Value» es el que se está aplicando ahora mismo. Si ves el 300 que pusiste, perfecto. Si sigue en 30 o 60, es que una configuración de nivel superior está sobrescribiendo la tuya o que el servidor bloqueó el cambio con directivas tipo php_admin_value en Apache.

Herramientas de diagnóstico

En WordPress, el plugin «Site Health» (Salud del sitio) también te da pistas. Aunque no te diga los segundos exactos en la versión estándar, si lanzas una tarea pesada y esta no se corta, es buena señal de que el aumento ha funcionado.

Preguntas frecuentes sobre max_execution_time

¿Es seguro establecer el tiempo a 0 (ilimitado)?
Nada recomendable. Un valor de 0 deja el script correr indefinidamente. Si ese script entra en un bucle infinito por un error de programación, se comerá el 100% de la CPU hasta que se acabe la memoria o alguien mate el proceso a mano. Puedes colapsar el servidor.

¿Cuál es el valor ideal para max_execution_time?
Para la mayoría de los sitios WordPress estándar, con 120 o 300 segundos bastas. Si tienes una tienda online con muchos productos o estás haciendo una migración grande, 600 segundos (10 minutos) es un límite seguro y funcional.

¿Por qué sigue fallando aunque haya aumentado el tiempo?
Puede ser otro límite el que te está frenando, como memory_limit o max_input_time. También es posible que el servidor web (Nginx o Apache) tenga su propio timeout (por ejemplo, ProxyTimeout o RequestReadTimeout) que corte la conexión antes de que PHP termine.

Conclusión

Saber aumentar max_execution_time es algo que todo administrador de sistemas o webmaster que trabaje con PHP y WordPress necesita tener en la manga. Tienes varias vías: ajustar el php.ini para un control global, usar .htaccess si estás en un compartido, o meter funciones en el núcleo de WordPress.

Pero hay que hacerlo con cabeza. Poner tiempos excesivamente altos a veces solo sirve para ocultar código ineficiente o dejar el servidor expuesto a ataques de denegación de servicio (DoS) simples. Si después de probar todo esto sigues atascado, es probable que tu entorno de hosting sea demasiado restrictivo para lo que necesitas. En esos casos, pedir soporte experto es la salida más rápida. Recuerda que en RedServicio (redservicio.net) tenemos listos a profesionales para optimizar tu servidor y asegurar que tus scripts corran sin cortes.