Activar WP-Cron con un cronjob en un sitio WordPress con ISPConfig

Procédure

¿Qué es WP-Cron?

WP-Cron es el mecanismo interno de WordPress que imita el servicio cron de Linux para ejecutar tareas programadas en segundo plano en WordPress. Entre otras cosas, esto permite realizar actualizaciones automáticas, calentar la caché y tareas de mantenimiento de WooCommerce. Dado que los plugins tienen acceso a este mecanismo, pueden añadir tareas a ejecutar para programar acciones adicionales. Puede encontrar más información en nuestra entrada de blog dedicada: ¿Qué es WordPress CRON?

¿Por qué activar WP-Cron con un cronjob?

WP-Cron fue diseñado originalmente para reemplazar cronjob en paquetes de alojamiento web que no permiten añadir un script al servicio cron de Linux. En consecuencia, WP-Cron desencadena la ejecución de tareas gracias a peticiones hechas al archivo wp-cron.php, durante peticiones AJAX hechas a wp-admin/admin-ajax.php, y/o cuando la página es cargada. Así pues, el desencadenante de estas peticiones HTTP es inevitablemente la visita al sitio web. Como resultado, la carga de la página se verá entorpecida por la ejecución de tareas WP-Cron y el rendimiento puede verse reducido. Peor aún, algunos plugins añaden tareas que son demasiado largas en Wp-Cron, hasta el punto de exceder los posibles tiempos de espera HTTP. Y lo más inquietante, la ejecución de tareas podría retrasarse porque no hay visitantes en el sitio en el momento en que la tarea debería haberse ejecutado. Algunas tareas podrían por tanto acumularse, y cuando un visitante abre la página, docenas o incluso cientos de tareas programadas podrían ser lanzadas, penalizando enormemente el tiempo de carga para este desafortunado visitante.

Activar WP-Cron con una tarea cron asegura que las tareas programadas con WP-Cron se ejecuten sin afectar a los visitantes: wp-cron.php se ejecutará a intervalos regulares, haya o no visitantes, y los visitantes podrán abrir inmediatamente el sitio sin esperar a que se ejecuten las tareas pendientes.

Paso 1: Desactivar la ejecución de WP-Cron cuando se carga una página

En primer lugar, es necesario deshabilitar WP-Cron para que no se ejecute cuando se carga una página. Esto se hace añadiendo la siguiente línea a su archivo wp-config.php:

define( 'DISABLE_WP_CRON', true );

Para ello, vaya a su cliente FTP, conéctese a su cuenta FTP y edite el archivo wp-config.php:

Activar WP-Cron con un cronjob en un sitio WordPress con ISPConfig

Paso 2: Activar wp-cron.php desde una tarea cron

En su panel de control ISPConfig, vaya a Sitios > Cron jobs y haga click en"Nuevo cron":

Activar WP-Cron con un cronjob en un sitio WordPress con ISPConfig

A continuación, introduzca un cronjob que se ejecuta cada minuto y ejecuta el archivo wp-cron.php:

Activar WP-Cron con un cronjob en un sitio WordPress con ISPConfig

El comando a ejecutar,"php7.4 [web_root]/wp-cron.php" puede ser ajustado:

  • php7.4 indica el binario PHP a utilizar. Si su sitio web utiliza otra versión, asegúrese de ajustar la versión indicada.
  • [web_root] representa la carpeta "web" en su FTP. También debe ajustarlo si su sitio WordPress se encuentra en un directorio concreto.

La casilla "Log output" le permite registrar la salida de wp-cron en la carpeta "private" de su cuenta FTP. Puede marcarla si desea tener la salida stdout y stderr de wp-cron.php, útil para depuración, por ejemplo.

Puede encontrar más información sobre lastareas cron programadas en su VPS en el artículo dedicado.

Algunas trampas a evitar

Por defecto, los sitios creados en ISPConfig no están asociados a ninguna cuenta de cliente:

Activar WP-Cron con un cronjob en un sitio WordPress con ISPConfig

Sin embargo, si usted ha asociado voluntariamente su sitio web con una cuenta de cliente o revendedor creada en ISPConfig, entonces esta cuenta puede tener ciertos límites cron que podrían impedir que el trabajo cron funcione correctamente. Para comprobar estos límites, vaya a la pestaña Límites de la cuenta de cliente/revendedor:

Activar WP-Cron con un cronjob en un sitio WordPress con ISPConfig

Asegúrese de que ha elegido Full cron para que el cronjob no se ejecute en un jail chroot limitado que no tiene todas las funciones necesarias para que el cronjob funcione correctamente:

Activar WP-Cron con un cronjob en un sitio WordPress con ISPConfig

Asegúrate también de establecer el tiempo mínimo entre ejecuciones en "1" para que el cronjob pueda ejecutarse cada minuto.

Si ya ha creado cronjobs y/o usuarios de shell para el sitio, será necesario borrar todos los cronjobs y usuarios de shell existentes, y luego recrearlos, para que ISPConfig pueda cambiarlos de un ambiente chroot a un ambiente cron completo.

Valora este artículo :

5/5 | 2 opinión

Este artículo le ha sido útil ?

Article utile

Article non utileNo

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Artículos similares

0mn lectura

¿Cómo desactivar mod_security en un sitio web en su VPS utilizando el panel ISPConfig?

1mn lectura

Límites de ancho de banda en servidores VPS

2mn lectura

Cómo configurar la autenticación de dos factores en ISPConfig


Formule una pregunta al equipo de LWS y a su comunidad