Hogyan cseréljük le a WordPress beépített cron-ját a cPanel ütemezetett feladatokjával?

Észrevetted néha, hogy a WordPress telepítésednek néhány másodperccel tovább tart a betöltés? Vagy esetleg, hogy az ütemezett bejegyzéseid nem jelennek meg időben? Ez talán a WordPress cron funkciójának köszönhető.

Mi az a cron, vagy ütemezett feladatok?

A cron job egy időzített feladat, amelyet a UNIX-alapú operációs rendszerekben használnak az automatizált feladatok elvégzésére. A cron job-okat a “crontab” nevű fájlban definiálják, amelyben a felhasználók meghatározhatják, hogy milyen parancsokat kell futtatni és milyen időközönként.

Laikus nyelven szólva ez egy olyan program, amelyet a cPanel tárhely vezérlőpanelen keresztül érhet el, hogy egy másik program egy adott időpontban ugyanazt a dolgot elvégezze.

Mi az a WordPress Cron?

A WordPress saját Cron funkcióval rendelkezik, amely lehetővé teszi, hogy a WordPress segítségével ütemezd a posztokat vagy automatizálj eseményeket. Ez az alapfunkciók része, és akkor indul el, amikor a látogató a webhelyére böngészik, és navigál az oldalakon.

Tehát ha a WordPressnek van saját cronja, hol van a probléma? Nos, számos probléma merülhet fel azzal kapcsolatban, hogy miért nem fejeződik be a folyamat.

Ezek a következők lehetnek:

  • Az Ön webhelye nem kap látogatókat, amikor szükséges
  • DNS hibás konfiguráció
  • Túlterhelt szerver
  • A cache pluginek megakadályozzák a wp-cron.php betöltődését
  • és a lista folytatódik tovább…

Ez azt jelenti, hogy ha a WordPress cron nem a megfelelő időben indul el, a poszt nem kerül ütemezésre. Továbbá mivel ez egy további program hozzáadása, amely akkor fut, amikor a webhelyed meglátogatják, ez növelheti a betöltési időt, mivel a WordPressnek át kell mennie egy automatizálási feladaton, mielőtt eljuthatna az oldal megjelenítéséhez.

Hogyan lehet a WordPress Cron (wp-cron.php) helyett egy tényleges Cron feladattal helyettesíteni?

Miután bejelentkezett a webtárhely cPanel felületére, navigáljon a cPanel alján található “Speciális” részhez, és kattintson a Cron Feladatok (Cron Jobs) menüpontra.

A Cron-feladatok panelen belül új feladatot adhat hozzá, vagy megtekintheti/módosíthatja a meglévő feladatokat.

Új feladat hozzáadása

A feladat indításához a következő beállítások állnak rendelkezésre. A cron job-ok időzítését egy speciális formátumban adják meg, amely hat mezőből áll:

  1. A perc (0-59)
  2. Az óra (0-23)
  3. A hónap napja (1-31)
  4. A hónap (1-12)
  5. A hét napja (0-7, ahol 0 és 7 mindkettő vasárnapot jelent)
  6. A futtatni kívánt parancs vagy script

Megjegyzés: A Cron Jobs-ban a “*” azt jelenti, hogy “minden” (pl. a napnál megadott ‘*’ azt jelenti, hogy minden nap)

Új feladat hozzáadásakor az első legördülő listából kiválaszthatja az előre meghatározott időbeosztást, de nekünk valami másra van szükségünk.

A folyamatnak 15 percenként kell elindulnia, amihez a második legördülő listából ki kell választanunk a “Once per 5 Minutes (*/5)” opciót, majd a többi mezőben csak a * (Every) opciót kell kiválasztanunk.

A WGET használatával

A “wget” parancs használata, amely egy ingyenes szoftvercsomag fájlok lekérdezésére a HTTP, HTTPS és FTP, a legelterjedtebb internetes protokollok segítségével. Ez egy nem interaktív parancssori eszköz, így könnyen hívható szkriptekből, cron feladatokból, X-Windows támogatás nélküli terminálokból stb.

A kód, amelyet végre kell hajtanunk, a következő:

wget -q -O - http://example.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

A example.com címet a WordPress telepítésednek megfelelő helyre kell módosítanod.

A WP-CLI használatával (ajánlott)

Mivel a cPanel szerverünkre telepítettük a WP-CLI-t is, ezt is használhatjuk az ütemezett feladatok indítására. A WP-CLI ismét egy parancssoros program, de tisztán arra szolgál, hogy a WordPress weboldalunkkal interakcióba léphessünk anélkül, hogy be kellene jelentkeznünk a műszerfalra.

Mi is a WP-CLI? A WP-CLI egy parancssori eszköz a WordPress weboldalak kezelésére. A “WP” a “WordPress” rövidítése, míg a “CLI” a “Command Line Interface” (parancssori felület) rövidítése. A WP-CLI lehetővé teszi a felhasználók számára, hogy telepítsenek, frissítsenek és kezeljenek WordPress weboldalakat és bővítményeket anélkül, hogy a webes felületen keresztül kellene elvégezni ezeket a műveleteket.

A végrehajtandó kód a következő:

/usr/local/bin/wp cron event run --due-now --path=/home/FELHASZNALO/MAPPA >/dev/null 2>&1

Részletesen áttekintve:

  • Az /usr/local/bin/wp azt mondja a rendszerneknek, hogy a WP-CLI bináris programot indítsa el. Ennek helyességét a terminálból a “whereis wp” paranccsal tudod megerősíteni.
  • A cron event run --due-now parancsot ad a WP-CLI-nek, hogy hajtsa végre az éppen esedékes feladatokat.
  • --path=/home/FELHASZNALO/MAPPA Mivel a WP-CLI abban a könyvtárban fog futni, ahonnan futtatjuk, pontosan meg kell adnunk, hogy hova van telepítve a WordPress. Ezt a telepítésedhez kell majd testre szabnod. Ezt megerősítheted, ha a WordPress könyvtáradba navigálsz, majd a terminálodból a “PWD” (Print working directory) parancsot használod.
  • >/dev/null 2>&1 ez az utolsó rész utasítja a teljes parancsot, hogy minden standard vagy hibakimenetet küldjön a /dev/null könyvtárba, hogy a naplók ne legyenek tele hibás adatokkal.

wp-cron.php letiltása

Miután a fenti ütemezett feladat beállításra került, még le kell tiltani a WordPress beépített cron funkcióját. Ehhez csak a wp-config.php fájlt kell szerkeszteni, és egy új sorban elhelyezni benne az alábbi opciót:

define('DISABLE_WP_CRON', true);