Izrada cronjoba ili zadatka (i što učiniti ako se ne pokreće)
Pomoću cronjoba (u DirectAdminu: Cron Jobs) možete automatski pokretati skriptu u točno određeno vrijeme, primjerice svake noći. U nastavku pročitajte kako ga izraditi i što učiniti ako ne radi.
Pravila za cronjobove
- Neka se zadatak pokreće najviše jednom u 10 minuta. To tražimo od svih korisnika jer poslužitelj dijelite s drugim web-stranicama.
- Rasporedite više cronjobova kroz vrijeme i odaberite mirno doba, primjerice 03:17 umjesto točno u ponoć.
- Zahtjevni cronjobovi koji dugo opterećuju poslužitelj nisu dopušteni. Na istom poslužitelju radi više web-stranica. Po potrebi ćemo zaustaviti cronjob. Stoga neka Vaši zadaci budu kratki i neka se ne pokreću češće nego što je potrebno.
Izrada cronjoba
- Prijavite se u DirectAdmin i pod Advanced Features kliknite na Cron Jobs.
- Kliknite na Create Cron Job.
- Unesite minutu, sat, dan, mjesec i dan u tjednu. Kod minute nikada ne stavljajte samo zvjezdicu jer će se zadatak tada pokretati svake minute. Upotrijebite broj ili, primjerice,
*/15za svakih 15 minuta. - Kod naredbe unesite punu putanju, na primjer:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
Zamijenite gebruiker svojim DA korisničkim imenom. - Kliknite na Create.

E-pošta nakon svakog cronjoba
Izlaz cronjoba šalje se na zadani račun e-pošte Vašeg paketa, pogledajte Zadani račun e-pošte u DirectAdminu. Izlaz možete slati i na vlastitu adresu pomoću Send all Cron output to email. Ako ne želite primati e-poštu, prilikom izrade kliknite na Prevent Email ili iza naredbe dodajte:
>/dev/null 2>&1
Pozor kod PHP skripti
Skripta koja se pokreće iz cronjoba ne zna pod kojom domenom radi. $_SERVER['SERVER_NAME'] i $_SERVER['DOCUMENT_ROOT'] su prazni, a include s relativnom putanjom može ne uspjeti. Zato na vrh svoje skripte stavite:
$pad = '/home/gebruiker/domains/jouwdomein.nl/public_html'; $_SERVER['SERVER_NAME'] = 'jouwdomein.nl'; $_SERVER['DOCUMENT_ROOT'] = $pad; set_include_path($pad . PATH_SEPARATOR . get_include_path());
WordPress: WP-Cron putem pravog cronjoba
WordPress ima vlastiti planer, WP-Cron, za zadatke kao što su zakazane objave, provjera ažuriranja i zadaci dodataka. On se ne pokreće u određeno vrijeme, nego samo kada netko posjeti Vašu stranicu. Uz malo posjeta zadaci tada kasne, a uz mnogo posjeta svaki posjet traje malo dulje. Uz običan cronjob WP-Cron se pokreće u određenim trenucima.
- U
wp-config.php, iznad retka/* That's all, stop editing! */, dodajte:define( 'DISABLE_WP_CRON', true );
- U Cron Jobs izradite zadatak koji se pokreće, primjerice, svakih 15 minuta: kod minute unesite
*/15, a kod sata, dana, mjeseca i dana u tjednu zvjezdicu. Naredba:/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/wp-cron.php >/dev/null 2>&1
Ako je WordPress instaliran u podmapi, dodajte je u putanju. - Sljedećeg dana u WordPressu pod Alati › Zdravlje web-stranice provjerite da nema obavijesti o zakazanim zadacima koji kasne.
I ovdje se pridržavajte pravila od najviše jednom u 10 minuta. Za većinu stranica dovoljno je svakih 15 ili 30 minuta.
Vaš cronjob se ne pokreće?
Provjerite redom sljedeće točke:
- Pročitajte izlaz. Privremeno uklonite
>/dev/null 2>&1i pogledajte poruku u zadanom računu e-pošte ili postavite vlastitu adresu. Ondje često piše točno što ne valja. Izlaz možete zapisivati i u datoteku zapisa tako da iza naredbe dodate>> /home/gebruiker/cron-log.txt 2>&1. - Provjerite putanju. Poruka Could not open input file znači da putanja do skripte nije ispravna. Pogledajte u File Manageru: putanja počinje s
/home/gebruiker/domains/. - Provjerite verziju PHP-a. Uz
/usr/local/bin/phpzadatak koristi istu verziju PHP-a kao Vaša web-stranica. Ako Vaša skripta radi samo na drugoj verziji, promijenite je u Select PHP version. - Ručno testirajte naredbu. Ako imate paket s Terminalom, zalijepite naredbu ondje i pogledajte što se događa, pogledajte SSH pristup i Terminal u DirectAdminu. Bez Terminala otvorite skriptu u pregledniku ili je u cronjobu pozovite putem
curl --silent https://www.jouwdomein.nl/taak.php. - Provjerite dozvole. Skripta mora biti čitljiva: datoteke trebaju imati dozvolu 644, a mape 755. Pogledajte Dozvole datoteka i mapa (chmod).
- Provjerite vrijeme pokretanja. Pod Cron Job Runs: provjerite pokreće li se zadatak onda kada mislite. Ako je kod minute zvjezdica, pokreće se svake minute. To je prečesto.
- Provjerite koliko dugo zadatak traje. Ako zadatak dugo traje ili se ponovno pokrene prije nego što je prethodni završio, može se zaglaviti ili dovesti Vaš paket do njegovih ograničenja. U tom slučaju podijelite posao na više krugova.
date >> /home/gebruiker/cron-log.txt;.Pogledajte i u priručniku za DirectAdmin: Zadani račun e-pošte Vašeg paketa.
Detaljno objašnjenje sa snimkama zaslona: Cron Jobs: automatsko pokretanje zadataka u priručniku za DirectAdmin.
Želite naučiti više? Pohađajte besplatni WordPress tečaj, lekcija 6.3 Slike, PHP i druga ubrzanja.
