Utilizar un cron para ejecutar wp-cron.php

wp-cronWordPress está diseñado para poder ejecutarse en diferente entornos de hosting web sin necesidades de configuración adicionales, de forma que puede funcionar desde el hosting más sencillo hasta en la infraestructura más compleja, incluso hasta hace poco en un alojamiento con php4. Muchas empresas de hosting no ofrecen soporte para programar tareas (cron). WordPress incluye su propio sistema para programar tareas, el cual se ejecuta gracias a wp-cron.php. Pero a veces esto no funciona en nuestro hosting o simplemente nuestro administrador de sistemas quiere tener el control sobre las tareas que de programan.

Para los administradores de sistemas o desarrolladores más avanzado y que normalmente alojan en un VPS, cloud hosting o un dedicado con soporte para cron, hay otras opciones alternativas a wp-cron.php. El primer paso es desactivar wp-cron con esta línea en el wp-config.php.

define('DISABLE_WP_CRON', true);

Ahora lo que tendremos que hacer es llamar a wp-cront.php utilizando directamente cron de nuestro sistema. Una buen forma de empezar es leer el artículo de la  Wikipedia.

Desde nuestra línea de comandos ssh de Linux/Unix podemos editar con crontab:

$> crontab -e

Y si no estás cómodo con este editor puedes cambiarlo con la variable de entorno $EDITOR y poner otro con el que te sientas mejor (por ejemplo: vim, emacs, nano, pico, etc.).

Ahora tenemos dos formas diferentes de ejecutar wp-cron.php.

  1. Utilizar wget o curl para realizar una llamada HTTP a nuestro wp-cron.php

    */30 * * * * wget http://example.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
  2. Escribir un script para configurar tu entorno y ejecutar wp-cron.php directamente.
    */30 * * * * /usr/bin/php /var/cron-scripts/run-wp-cron.php /dev/null 2>&1
    <?php
    // grabar este fichero en run-wp-cron.php
    chdir('/var/www'); // DocumentRoot de tu instalación WordPress
    include('wp-cron.php');
    ?>

En ambos ejemplos, “/dev/null 2>&1” es utilizando para enviar las salidas por pantalla o de errores a /dev/null el cual descarta las salidas y errores. Por defecto, un cron debería enviar un email a la dirección definida en el sistema por el usuario.

Fuente: bit swapping
imagen : tutsplus

1 Comentario

  1. Desde que he desactivado el cron de wordpress y uso una tarea cron de Hostgator, cuando instalo o actualizo un plugin, NO veo como desempaqueta el plugin ni como lo instala ni tampoco si la instalación ha sido correcta o no 🙁

Dejar respuesta

Please enter your comment!
Please enter your name here