Utlösa WP-Cron med ett cronjob på en WordPress-webbplats med ISPConfig

Procédure

Vad är WP-Cron?

WP-Cron är den interna WordPress-mekanismen som imiterar Linux cron-tjänst för att köra schemalagda uppgifter i bakgrunden på WordPress. Detta gör det bland annat möjligt att utföra automatiska uppdateringar, förvärmning av cache och WooCommerce-underhållsuppgifter. Eftersom plugins har tillgång till denna mekanism kan de lägga till uppgifter som ska utföras för att schemalägga ytterligare åtgärder. Du kan läsa mer om detta i vårt blogginlägg: Vad är WordPress CRON?

Varför trigga WP-Cron med ett cronjob?

WP-Cron utformades ursprungligen för att ersätta cronjob på webbhotellspaket som inte tillåter dig att lägga till ett skript till Linux cron-tjänst. Som ett resultat utlöser WP-Cron utförandet av uppgifter tack vare förfrågningar som görs till wp-cron.php-filen, under AJAX-förfrågningar som görs till wp-admin/admin-ajax.php, och/eller när sidan laddas. Så utlösaren för dessa HTTP-förfrågningar är oundvikligen besöket på webbplatsen. Som ett resultat kommer sidladdning att belastas av utförandet av WP-Cron-uppgifter och prestanda kan minskas. Ännu värre är att vissa plugins lägger till uppgifter som är alldeles för långa för Wp-Cron, så att de överskrider de möjliga HTTP-väntetiderna. Och det mest oroande är att utförandet av uppgifter kan försenas eftersom det inte finns några besökare på webbplatsen vid den tidpunkt då uppgiften skulle ha utförts. Vissa uppgifter kan därför ackumuleras, och när en besökare öppnar sidan kan dussintals eller till och med hundratals schemalagda uppgifter tappas bort, vilket kraftigt försämrar laddningstiden för denna olyckliga besökare.

Att trigga WP-Cron med ett cron-jobb säkerställer därför att uppgifter som schemalagts med WP-Cron utförs utan att påverka besökarna: wp-cron.php kommer då att utföras med jämna mellanrum, oavsett om det finns besökare eller inte, och besökare kan omedelbart öppna webbplatsen utan att vänta på att väntande uppgifter ska utföras.

Steg 1: Inaktivera WP-Cron från att köras när en sida laddas

Först och främst måste du inaktivera WP-Cron från att köras när en sida laddas. Detta görs genom att lägga till följande rad i din wp-config.php-fil:

define( 'DISABLE_WP_CRON', true );

För att göra detta går du till din FTP-klient, ansluter till ditt FTP-konto och redigerar filen wp-config.php:

Utlösa WP-Cron med ett cronjob på en WordPress-webbplats med ISPConfig

Steg 2: Utlösa wp-cron.php från ett cron-jobb

I din ISPConfig-kontrollpanel går du till Sites > Cron jobs och klickar på"New cron":

Utlösa WP-Cron med ett cronjob på en WordPress-webbplats med ISPConfig

Ange sedan ett cronjob som körs varje minut och exekverar filen wp-cron.php:

Utlösa WP-Cron med ett cronjob på en WordPress-webbplats med ISPConfig

Kommandot som ska köras,"php7.4 [web_root]/wp-cron.php" kan justeras:

  • php7.4 anger den PHP-binär som ska användas. Om din webbplats använder en annan version, se till att justera den angivna versionen.
  • [web_root] representerar mappen "web" i din FTP. Du bör också justera detta om din WordPress-webbplats finns i en viss katalog.

Kryssrutan "Log output" gör att du kan logga utdata från wp-cron i mappen "private" i ditt FTP-konto. Du kan markera den om du vill ha utdata från wp-cron.php i form av stdout och stderr, vilket är användbart vid t.ex. felsökning.

Du kan läsa mer omschemalagda cron-jobbsuppgifter på din VPS i den dedikerade artikeln.

Några fallgropar att undvika

Som standard är webbplatser som skapas på ISPConfig inte associerade med något kundkonto:

Utlösa WP-Cron med ett cronjob på en WordPress-webbplats med ISPConfig

Men om du frivilligt har associerat din webbplats med ett kund- eller återförsäljarkonto som skapats i ISPConfig, kan det här kontot ha vissa cron-gränser som kan förhindra att cron-jobbet fungerar korrekt. För att kontrollera dessa gränser går du till fliken Limits på kund-/återförsäljarkontot:

Utlösa WP-Cron med ett cronjob på en WordPress-webbplats med ISPConfig

Kontrollera sedan att du har valt Full cron så att cronjobbet inte körs i en begränsad jail chroot som inte har alla de funktioner som krävs för att cronjobbet ska fungera korrekt:

Utlösa WP-Cron med ett cronjob på en WordPress-webbplats med ISPConfig

Se också till att du ställer in minsta tid mellan körningarna till "1" så att cronjobbet kan köras varje minut.

Om du redan har skapat cronjobs och/eller shell-användare för webbplatsen måste du ta bort alla befintliga cronjobs och shell-användare och sedan återskapa dem så att ISPConfig kan byta dem från en chroot-miljö till en fullständig cron-miljö.

Betygsätt denna artikel :

5/5 | 2 Yttrande

Den här artikeln var användbar för dig ?

Article utileJa

Article non utileNej

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)

Liknande artiklar

0mn läsning

Hur inaktiverar du mod_security på en webbplats på din VPS med hjälp av ISPConfig-panelen?

1mn läsning

Bandbreddsbegränsningar på VPS-servrar

2mn läsning

Så här konfigurerar du tvåfaktorsautentisering på ISPConfig


Ställ en fråga till AWS-teamet och dess community