Incrementar tiempo de ejecución PHP con Nginx y Apache ( ERROR 504 )

Si usas Nginx o Apache en tu servidor, alguna vez actualizando WordPress o cualquier otra plataforma como por ejemplo joomla, moodle, domoticz, owncloud y te aparece el error «504 Gateway Time-error» es por que hay un límite de tiempo de ejecución por defecto de 30 segundos del código y en ciertas máquinas o con determinados plugins, este tiempo máximo no es suficiente.

Aumentar el tiempo de ejecución en APACHE y NGINX

Con Apache solo necesitarás este cambio para aumentar el tiempo de ejecución, se resume en ir a el archivo php.ini (/etc/php5/fpm/php.ini) y editar el parámetro max_execution_time

Resumiendo y para vagos, editamos el archivo:

sudo nano /etc/php5/fpm/php.ini

Y en el archivo buscar el parámetro y modificar el número que está en segundos, por ejemplo 600:

max_execution_time = 600

Con apache esto debería aumentar el tiempo máximo de ejecución, pero con Nginx necesitas hacer antes un par de pasos más.

SOLO NGINX – Aumentar tiempo de ejecución para todo el servidor

Hay que editar adicionalmente dos archivos para que el tiempo de ejecución en Nginx aumente: nginx.conf y www.conf

Primeramente editamos el archivo nginx.conf

sudo nano /etc/nginx/nginx.conf

Y editamos dentro del apartado http { … } la línea fastcgi_read_timeout, poniendo en segundos el tiempo de ejecución máximo, pondremos 600 como antes en este ejemplo:

http {
...
fastcgi_read_timeout 600; 
...
}

SOLO NGINX – Aumentar tiempo de ejecución para solo un dominio

Si solo queremos aumentar el tiempo de ejecución en un solo host/domino y no en todo el servidor, para el ejemplo pondremos que nuestro dominio es ejemplo.com, tomando esto como referencia buscaremos y editaremos el siguiente archivo:

sudo nano /etc/nginx/sites-available/ejemplo.com

Ahora tenemos que buscar lo siguiente y editar el siguiente parámetro fastcgi_read_timeout, como siempre en segundos:

location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_read_timeout 600; 
}

Problemas comunes

Problema: Sigue dando el error 504 – No has reiniciado el servicio tras editar los archivos

Solución: Reinicia el servicio:

sudo service php5-fpm reload
sudo service nginx reload

Problema: Sigue sin funcionar tras haber hecho lo anterior.

Solución: Seguramente tienes sin comentar en el php.ini el parámetro request_terminate_timeout (comentado por defecto), así que tendrás que editar en el archivo de configuración de fpm

sudo nano /etc/php5/fpm/pool.d/www.conf

Encontrar y editar el atributo request_terminate_timeout y lo colocamos a los segundos que queramos:

request_terminate_timeout = 600

Y seguidamente reiniciamos:

sudo service php5-fpm reload
sudo service nginx reload

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.