Cron-jobs voor je Drupal website configureren

Ingediend door Donny op wo, 10/02/2010 - 07:39

Door cron-jobs in te stellen kan je op vaste tijdstippen scripts of pagina's laten aanroepen.
Drupal maakt hier ook gebruik van, bv om je website te indexeren en zo de ingebouwde zoekfunctie bij te werken, indien je de update status module hebt ingeschakeld zal deze dan ook controleren of er bepaalde updates zijn, controleren van Feed aggregators, ...

Bij Drupal worden al deze acties aangeroepen via het bestand cron.php, eenmaal je deze aanroept worden alle jobs uitgevoerd. Maar daarmee worden ze natuurlijk nog niet op vaste tijdstippen uitgevoerd, daar voor dien je een cron-job in te stellen. Je kan voor Drupal de module poormanscron installeren die je kan instellen om op vaste tijdstippen de cron-jobs uit te voeren. Deze module zal ook in de core zitten van Drupal 7.

Natuurlijk is dit weer een extra module bij dus is het beter om de cron-jobs te laten uitvoeren via je hosting. Indien je website op een shared hosting staat, heb je er normaal ook toegang bij verkregen tot het control panel waar je de cron-jobs via Crontab kan instellen.

Hoe je dit commando instelt is meestal afhankelijk van je hosting. Best kan je misschien even via phpinfo() het juiste path bekijken naar je bestanden op de server en waar PHP staat.
Voor dit te doen maak je een PHP bestand aan en plaats je het volgende er in:

<?php
   phpinfo();
?>

Voor cron in te stellen log je in bij het control-panel van je hosting, daar kan je deze instellen bij crontab (Misschien cron-jobs, de benaming zal van de host afhangen).

Bij het instellen van de cron-job kan je ook aan het commando toevoegen dat er geen e-mails verstuurd dienen te worden bij elke cron-run. Dit kan je door het volgende op het einde toe te voegen:

>/dev/null 2>&1

Voorbeeld instellen tijdstippen cron-job
Je kan opgeven op welke minuut, uur, dag, maand de cron-job moet lopen, in onderstaand voorbeeld laat ik de cron-job elk half uur lopen. (* als wildcard).

Crontask

 

Nu moeten we het commando nog ingeven, zoals reeds vermeld is dit afhankelijk van de server.

vb 1 Plesk control panel (Hosting op 1-eurohost.be). Hier heb ik ook nog toegevoegd dat eerst de directory word ingesteld.

cd /var/www/vhosts/voorbeeld-domeinnaam.be/httpdocs/ ; /usr/bin/php -q cron.php >/dev/null 2>&1

vb 2 (Direct admin control panel)

/usr/local/bin/php /home/gebruikersnaam-van-je-hosting/domains/voorbeeld-domeinnaam.be/public_html/cron.php

Tijdens het instellen en uitproberen zou ik de e-mail boodschappen nog niet uitschakelen tot je zeker bent dat cron word aangeroepen.

Labels