Cron-jobs voor je Drupal website configureren

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: 

4 comments

25
Jul

afbeelding van Lambert de Groot

Tijdens het uitvoeren van de cron krijg ik deze melding,

/home/user/public_html/cron.php: line 1: ?php: No such file or directory
/home/user/public_html/cron.php: line 2: //: is a directory
/home/user/public_html/cron.php: line 4: /_rvdynamicaddon: Permission denied
/home/user/public_html/cron.php: line 5: access-logs: command not found
/home/user/public_html/cron.php: line 6: syntax error near unexpected token `('
/home/user/public_html/cron.php: line 6: ` * Handles incoming requests to fire off regularly-scheduled tasks (cron jobs).'

is dit juist?

3
Aug

afbeelding van Donny
  • Waar krijg je deze fouten? Is dit in het logoverzicht bij de rapporten?
  • Hoe heb je cron.php laten oproepen? Via een cronjob, handmatig door cron.php te bezoeken of via de status pagina?
  • Gebruik je de standaard bij Drupal meegeleverde cron.php?
30
Aug

afbeelding van stephan

Hoi , ik heb de laatste tijd al heel wat afgelezen over cronjobs . zelf zit ik bij webreus waar ik via plesk een cronjob kan instellen via een formuliertje ( menuut,uur,dag van de maand,dag van de week,en dan opdracht ) .

nu wat ik niet begrijp wat moet ik nu juist invullen bij die opdracht : moet ik daar verwijzen naar een zelf aangemaakte cron.php en wat moet ik dan juist in die cron.php pagina zetten ??

1
Sep

afbeelding van Donny

Is het voor een Drupal website? Zoja dan mag je deze verwijzen naar cron.php
Drupal zal hier zelf afhankelijk van alle modules cron-jobs aan toevoegen.

Is het voor een custom PHP website, dan kan je zelf een bestand aanmaken en hiernaar verwijzen. In dit bestand kan je dan extra zaken toevoegen die je op regelmatige basis wilt laten uitvoeren, bv het nemen van een backup van je database.

Reactie toevoegen