Documentación en Español/Guía del Administrador/Tareas del Cron

From Mahara Wiki
Jump to navigation Jump to search

Las tareas del cron permiten que Mahara pueda realizar determinadas tareas de forma programada y a intervalos de tiempo regulares. Se trata fundamentalmente de funciones de mantenimiento. Para ello, se debe lanzar un script de Mahara cada minuto, por ejemplo, y dicho script se encarga de lanzar todas las demás funciones de mantenimiento.

Las tareas de mantenimiento del cron incluyen, por ejemplo:

  • Actualizar los alimentadores de sindicación RSS.
  • Enviar las notificaciones email con actualización de comentarios en los posts, mensajes enviados a usuarios, etc.
  • Limpiar ficheros obsoletos para salvar espacio.

Como configurar las tareas del cron

El scrip del cron se halla localizado en el fichero  lib/cron.php. Lo único que necesita es configurar una tarea para visitar este script cada minuto. Esto puede realizarse a través del web yendo a:  http://su-sitio-mahara.org/lib/cron.php, o mediante la línea de comandos:

php /path/to/mahara/htdocs/lib/cron.php.

Ambos métodos tienen sus ventajas y desventajas.

Invocar el cron.php vía Web

Esta es la forma más simple de lanzar el cron.  En su crontab, necesita escribir lo siguiente:

* * * * * curl http://su-sitio-mahara.org/lib/cron.php

que viene a decir algo así como:  "cada minuto, utilice 'curl'  para lanzar el script cron.php".

En esta forma simple, la salida generada por el cron.php  se guardará en el fichero "error log" del servidor apache, donde también se almacenan todos los mensajes de diágnostico y posibles mensajes de error de todos los procesos y peticiones que el servidor está ejecutando. Por tanto, en este método resulta más dificil localizar y depurar los posibles mensajes de error del cron.

Invocar el cron.php a través de la línea de comandos

Este método es ligeramente más difícil pero permite monitorizar la salida del cron por separado. El truco consiste en lanzar las tareas del cron como el usuario web, de modo que tenga todo los derechos de acceso que necesite. Esto se puede realizar instalando las tareas del cron en el crontab del usuario del servidor web, o bien instalándolo  en el crontab raíz, configurando el campo de usuario como usuario del web nserver

Para configurar el crontab del usuario del servidor web sería:

* * * * * php /path/to/mahara/htdocs/lib/cron.php >> /path/to/mahara/cron.log 2>&1

o, en el crontab raíz (reemplace www-data con el usuario del servidor web):

* * * * * www-data php /path/to/mahara/htdocs/lib/cron.php >> /path/to/mahara/cron.log 2>&1

Al invocar el cron a través de la línea de comandos, deberá tener presente lo siguiente:

  • Asegúrese de que el fichero cron.log puede ser escrito por el usuario del servidor web. En Debian, se puede crear el directorio  /var/log/mahara-cron, and y cambiar los permisos de forma recursiva a  www-data mediante el comando chown. Una vez cambiados los permisos se puede configurar el path al fichero log /var/log/mahara-cron/cron.log.
  • El fichero  php.ini empleado por la línea de comandos PHP no es el mismo que el empleado por Apache PHP. Por ejemplo, en Debian Apache utiliza  "/etc/php5/apache2/php.ini", mientras que la línea de comandos utiliza "/etc/php5/cli/php.ini". Por lo tanto, asegúrese de que ambos ficheros php.ini tienen la misma configuracióm, o utilice la opción -c flag al invocar PHP: * * * * * php -c /etc/php5/apache2/php.ini /path/to/mahara/htdocs/lib/cron.php >> /path/to/mahara/cron.log 2>&1