Tiempo de ejecución excedido
El problema
El otro día, tratando de crear una copia de seguridad o «backup» del sitio WordPress de un cliente con Duplicator, una de los plugins disponibles para realizar dicha tarea, apareció un mensaje de error con la extraña frase max_execution_time exceeded
. De esta forma no me permitía realizar la copia de seguridad del sitio que, como dato, tenia un tamaño superior a 50 Mb.
Éste parámetro está dentro de la configuración básica de PHP, en el fichero php.ini
. Para acceder a él debes tener acceso directo al servidor web. En la mayoría de casos el valor de éste parámetro está establecido en 30 segundos, lo que significa que cualquier operación que exceda este tiempo será cancelada automáticamente. La operación de realizar copias de seguridad de sitios web grandes o medianos, normalmente, suele requerir más de 30 segundos por lo que WordPress nos lanzará automáticamente un error o veremos como el fichero que se crea es corrupto.
La Solución
Como hemos dicho, debes tener acceso al servidor web para modificar este parámetro en el archivo php.ini dónde está la configuración de PHP. En alguna ocasiones algunos proveedores te permiten modificar el parámetro desde el panel de control sin tener que acceder al servidor a través del terminal para modificarlo. A veces, para que no suponga un riesgo para la seguridad de tu web puedes incluso desactivar el límite de tiempo durante un tiempo limitado, de esta forma puedes realizar cualquier operación necesaria sin quitar el límite indefinidamente.
Sin embargo, si no es tu caso y tu proveedor no te permite realizar dicha gestión deberás acceder a través de ssh o ftp a tu servidor, encontrar el archivo php.ini y modificar el parámetro max_execution_time
y ponerlo a 0. Cuando está a 0 significa que no habrá límite establecido.
Si no sabes dónde está el archivo php.ini echa un vistazo a este post.
Te recomendamos que una vez hayas realizado la copia de seguridad de tu sitio hayas realizado la operación que no podías ejecutar con límite de tiempo vuelvas a establecer el límite en 30 segundos.
Este parámetro existe por razones de seguridad puesto que de estar desactivado, en el caso de un script defectuoso que provocara cualquier tipo de bucle podría saturar tu servidor web haciendo que tu página no se mostrara a los visitantes.