Hoe gebruik je drupal cron met cli

Posted by: 
Dominique De Cooman

Wanneer je cron met cli laat lopen in Drupal is dit het resultaat:

PHP Warning:  include_once(): Failed opening './includes/bootstrap.inc'

Het is handig om crom op te roepen met cli wanneer jouw externe verificatie en crontab niet beschikbaar zijn met http. In dat geval zou je het als volgt inbrengen:

0 * * * * wget --spider <a href="http://yoursite/cron.php
">http://yoursite/cron.php [/geshifilter-codes]

Welnu, dit is wat je in de crontab moet inbrengen wanneer je het wil oproepen vanuit cli (gebruik "crontab -e als commando)

* * * * * php /home/ddcooman/workspace/extranet-client/src/drupal/cron.php

Maar zoals eerder besproken geeft dit dus een foutmelding. De oplossing hiervoor is dat je een nieuwe cron file aanmaakt "cronlocal.php" met daarin:


<?php
// $Id: cronlocal.php Exp $

/**
 * @file
 * Handles incoming requests to fire off regularly-scheduled tasks (cron jobs).
 */

$path='/home/ddcooman/workspace/extranet-client/src/drupal';
chdir($path);

include_once 
'./includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
drupal_cron_run();
?>

De chdir zal het adres en bootstrap drupal wijzigen. Wanneer drupal dan is gebootstrapt zal de drupal cron worden uitgevoerd.

Tip: Je kan dit trucje ook aanwenden om een bootstrap in drupal uit te voeren bij het doorlopen van geïmporeerde scripts. De gehele drupal api wordt beschikbaar wanneer een drupal bootstrap is uitgevoerd.

Reactie toevoegen