WP-Cron activeren met een cronjob op een WordPress site met ISPConfig

Procédure

Wat is WP-Cron?

WP-Cron is het interne WordPress mechanisme dat de Linux cron service imiteert om geplande taken op de achtergrond uit te voeren op WordPress. Dit maakt het onder andere mogelijk om automatische updates, cache voorverwarming en WooCommerce onderhoudstaken uit te voeren. Omdat plugins toegang hebben tot dit mechanisme, kunnen ze taken toevoegen die moeten worden uitgevoerd om extra acties te plannen. Je kunt meer te weten komen in onze speciale blogpost: Wat is WordPress CRON?

Waarom WP-Cron activeren met een cronjob?

WP-Cron is oorspronkelijk ontworpen om cronjob te vervangen op webhostingpakketten waarbij het niet mogelijk is om een script toe te voegen aan de Linux cron service. Het resultaat is dat WP-Cron de uitvoering van taken triggert dankzij verzoeken aan het bestand wp-cron.php, tijdens AJAX-verzoeken aan wp-admin/admin-ajax.php en/of wanneer de pagina wordt geladen. De trigger voor deze HTTP verzoeken is dus onvermijdelijk het bezoek aan de website. Als gevolg daarvan wordt het laden van pagina's belemmerd door het uitvoeren van WP-Cron taken en kan de prestatie afnemen. Erger nog, sommige plugins voegen veel te lange taken toe aan Wp-Cron, zodanig dat de mogelijke HTTP-wachttijden worden overschreden. En het meest verontrustende is dat de uitvoering van taken vertraagd kan worden omdat er geen bezoekers op de site zijn op het moment dat de taak uitgevoerd had moeten worden. Sommige taken kunnen zich dus ophopen en wanneer een bezoeker de pagina opent, kunnen tientallen of zelfs honderden geplande taken worden afgebroken, waardoor de laadtijd voor deze onfortuinlijke bezoeker enorm wordt benadeeld.

Het triggeren van WP-Cron met een cron job zorgt er daarom voor dat taken die met WP-Cron zijn ingepland worden uitgevoerd zonder dat bezoekers er last van hebben: wp-cron.php wordt dan op regelmatige intervallen uitgevoerd, of er nu bezoekers zijn of niet, en bezoekers kunnen de site direct openen zonder te wachten tot wachtende taken zijn uitgevoerd.

Stap 1: WP-Cron uitschakelen voor uitvoeren wanneer een pagina wordt geladen

Allereerst moet u WP-Cron uitschakelen zodat deze niet kan worden uitgevoerd wanneer een pagina wordt geladen. Dit doet u door de volgende regel toe te voegen aan uw wp-config.php bestand:

define( 'DISABLE_WP_CRON', true );

Ga hiervoor naar je FTP-client, maak verbinding met je FTP-account en bewerk het bestand wp-config.php:

WP-Cron activeren met een cronjob op een WordPress site met ISPConfig

Stap 2: Trigger wp-cron.php vanuit een crontaak

Ga in het configuratiescherm van ISPConfig naar Sites > Cron jobs en klik op"New cron":

WP-Cron activeren met een cronjob op een WordPress site met ISPConfig

Voer vervolgens een cronjob in die elke minuut wordt uitgevoerd en het bestand wp-cron.php uitvoert:

WP-Cron activeren met een cronjob op een WordPress site met ISPConfig

Het commando dat moet worden uitgevoerd,"php7.4 [web_root]/wp-cron.php" kan worden aangepast:

  • php7.4 geeft de PHP binary aan die gebruikt moet worden. Als uw website een andere versie gebruikt, moet u de aangegeven versie aanpassen.
  • [web_root] staat voor de "web" map in je FTP. Je moet dit ook aanpassen als je WordPress site zich in een bepaalde map bevindt.

Met het selectievakje "Uitvoer loggen" kun je de uitvoer van wp-cron loggen in de "privé" map van je FTP-account. Je kunt dit aanvinken als je de stdout en stderr uitvoer van wp-cron.php wilt hebben, handig voor bijvoorbeeld debuggen.

Je kunt meer te weten komen overgeplande cron job taken op je VPS in het speciale artikel.

Een paar valkuilen om te vermijden

Standaard zijn sites die zijn aangemaakt op ISPConfig niet gekoppeld aan een klantenaccount:

WP-Cron activeren met een cronjob op een WordPress site met ISPConfig

Als u uw website echter vrijwillig hebt gekoppeld aan een klant- of reselleraccount dat is aangemaakt op ISPConfig, dan kan dit account bepaalde cron-limieten hebben waardoor de cron-taak niet goed werkt. Om deze limieten te controleren, ga je naar het tabblad Limieten van het klant/reseller account:

WP-Cron activeren met een cronjob op een WordPress site met ISPConfig

Zorg er dan voor dat je Full cron hebt gekozen zodat de cronjob niet in een beperkte jail chroot draait die niet alle functies heeft die nodig zijn om de cronjob goed te laten werken:

WP-Cron activeren met een cronjob op een WordPress site met ISPConfig

Zorg er ook voor dat je de minimale tijd tussen runs op "1" zet zodat de cronjob elke minuut kan draaien.

Als je al cronjobs en/of shell gebruikers hebt aangemaakt voor de site, dan zal het nodig zijn om alle bestaande cronjobs en shell gebruikers te verwijderen, en ze dan opnieuw aan te maken, zodat ISPConfig ze kan overschakelen van een chroot omgeving naar een volledige cron omgeving.

Beoordeel dit artikel :

5/5 | 2 mening

Dit artikel was nuttig voor jou ?

Article utileJa

Article non utileGeen

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Vergelijkbare artikelen

0mn lezen

Hoe schakel je mod_security uit op een website op je VPS met het ISPConfig paneel?

1mn lezen

Bandbreedtelimieten op VPS servers

2mn lezen

Hoe twee-factor authenticatie te configureren op ISPConfig


Stel een vraag aan het LWS-team en de gemeenschap