Linux Cron Job je automatsko pokretanje određenog programa, skripte ili servisa u odabrano vrijeme.
Kod situacije gdje se treba izvršiti PHP skripta, podešavanje je nešto drugačije, ovdje je opisana procedura.
- Potrebno je imati instaliran php-cli. (iz synaptica odabrati php5-cli ili pokrenuti naredbu: apt-get install php5-cli)
- Provjeriti da li je PHP postavljen kao CGI ili kao Apache modul.
Unutar php skripte napišemo naredbu: phpinfo();
Otvorimo skriptu sa browserom i između prikaza svih postavki potražimo Server API (četvrti po redu)
Ako piše CGI, server je kompajliran kao CGI, ako piše Apache, onda je PHP instaliran kao Apache module.
- Cron na Ubuntu (10.04 noviji) pozivamo naredbom:
$ crontab -e(otvara se editor unutar kojeg se upisuju naredbe koje trebaju biti izvršene). Detaljnije o cron job za Ubuntu je ovdje. Na ovim stranicama je objašnjeno kako definiramo vrijeme pozivanja skripte.
- Ako imamo Apache modul, instalirati lynx, browser koji radi iz komandne linije.
Unutar crona pozvanog crontab naredbom stavimo naredbu koja treba biti izvršena:
00 17 * * * lynx -dump http://www.somedomain.com/cron.php
Ako imamo simple apache autentikaciju koja štiti direktorij gdje se nalazi skripta, možemo staviti ovakvu naredbu:
00 17 * * * lynx -auth=username:password -source http://www.somedomain.com/cron.php
- Ako je CGI modul, skriptu možemo pozvati iz cron job naredbom:
00 17 * * * php /path/cron.php
AKo zovemo php skriptu iz basha, princip je sličan.
Zaglavlje php skripte može imati ovakvo zaglavlje (npr. cronskripta.php):
Dovoljno je i samo ovo u linux shell skriptu (ovo radi i za standardnu php skriptu bez prehodno navedenog zaglavlja):
#!/bin/sh lynx -dump http://localhost/dir/cronskripta.php # (za CGI): php /path/cronskripta.php