Vytvoření cron jobu (naplánované úlohy)
Můžete si vytvářet takzvané CRON joby, tedy programy, které se spouštějí v předem nastavených časech. Není povoleno vytvářet cron joby, které běží častěji než 1x za 10 minut. Nejsou povoleny ani náročné cron joby (které extrémně zatěžují procesor). Na jednom serveru totiž běží i další weby. Nechcete, aby vás omezovali ostatní, a ostatní nechtějí, abyste je omezovali vy. WebOké může v případě potřeby cron joby ukončit. Pravidlem je, že cron job nesmí běžet déle než 10 sekund. Pokud chcete cron joby spouštět častěji, je to povoleno od balíčků POWER WEBHOST.
Pokud vytvoříte více cron jobů, platí to pro jejich součet, spouštějte tedy prosím max. 1 cron job za 10 minut. Cron joby si proto dobře rozložte, prospěje to výkonu serveru.
Do cron jobu ideálně vložte tento příkaz: set_time_limit(10). Díky tomu se cron job zastaví, pokud poběží déle než 10 sekund. Cron job zadáte v ovládacím panelu.
Jak cron job vypadá
Cron job, který například spouští PHP program, vypadá takto:
/usr/local/bin/php -q /home/<usrdir>/domains/<uwdomein.xx>/public_html/<taak.php>
Nahraďte <usrdir> svým uživatelským jménem v DirectAdminu, <uwdomein.xx> svým doménovým jménem a <taak.php> svým PHP skriptem.
Odeslání e-mailu po každém cron jobu
Standardně se odesílá e-mail na váš výchozí e-mailový účet. V tomto e-mailu se zobrazují případné chyby z cronu i případné výstupy programu. Tuto schránku si můžete prohlédnout na webmail.weboke.nl, když jako uživatelské jméno zadáte název svého účtu, heslo a název serveru. Pokud už e-mail pokaždé dostávat nechcete, přidejte za cron job toto: /dev/null 2>&1
Cesty jsou trochu jiné než přes FTP
Musíte tedy uvést úplnou cestu k PHP a úplnou cestu k PHP programu na serveru. To se liší od FTP, nyní je na začátku /home/usrdir. Usrdir nahraďte svým vlastním uživatelským jménem (tím k ovládacímu panelu).
Důležité!! Cron job nezná doménové jméno
Myslete také na to, že PHP program spuštěný z cron jobu neví, pod kterým webem běží. $_SERVER['SERVER_NAME'] je prázdné a selže i include, protože chybí základní cesta!!
Příklad kódu, který můžete vložit do programu pro cron, abyste tomu předešli:
- $pad = "/home/<usrname>/domains/<uwdomein.xx>/public_html"; (nezapomeňte nahradit <usrdir> a <uwdomein.xx>!!!)
- $_SERVER['SERVER_NAME'] = 'uwdomein.xx';
- $_SERVER['DOCUMENT_ROOT'] = $pad;
- set_include_path($pad . PATH_SEPARATOR . ini_get("include_path"));
