Opprett en cronjob / oppgave
Det er mulig å lage såkalte cronjobber, det vil si et program som kjøres på forhåndsinnstilte tidspunkter. Det er ikke tillatt å lage cronjobber som kjører oftere enn 1 gang per 10 minutter. Tunge cronjobber (som belaster prosessoren ekstremt) er heller ikke tillatt. Det kjører jo flere nettsider på samme server. Du vil ikke bli plaget av andre, og andre vil heller ikke bli plaget av deg. WebOké kan avslutte cronjobber ved behov. Regelen er at en cronjob ikke kan kjøre lenger enn 10 sekunder. Vil du kjøre cronjobber oftere, er det tillatt fra og med POWER WEBHOST-pakkene.
Lager du flere cronjobber, gjelder dette totalen, altså maks. 1 cronjob som starter per 10 minutter. Spre derfor cronjobbene dine godt, det er bra for serverens ytelse.
Ta helst med denne setningen i cronjobben din: set_time_limit(10). Da stopper cronjobben hvis den varer lenger enn 10 sekunder. En cronjob legger du inn fra kontrollpanelet.
Slik ser en cronjob ut
En cronjob som for eksempel starter et PHP-program, ser slik ut:
/usr/local/bin/php -q /home/<usrdir>/domains/<uwdomein.xx>/public_html/<taak.php>
Du bytter ut <usrdir> med brukernavnet i DirectAdmin, <uwdomein.xx> med domenenavnet ditt og <taak.php> med PHP-skriptet ditt.
E-post etter hver cronjob
Som standard sendes det en e-post til standard e-postkontoen din. I den e-posten vises eventuelle feil fra cronjobben, og også eventuell utdata. Du kan se den postkassen ved å oppgi kontonavnet ditt som brukernavn på webmail.weboke.nl, sammen med passordet og servernavnet. Vil du ikke lenger få en e-post hver gang, legger du dette til bak cronjobben: /dev/null 2>&1
Stiene er litt annerledes enn via FTP
Du må altså sette hele stien til PHP foran, og hele stien på serveren til PHP-programmet. Det er annerledes enn via FTP, nå står /home/usrdir foran. Usrdir bytter du ut med ditt eget brukernavn (det til kontrollpanelet).
Viktig!! En cronjob kjenner ikke noe domenenavn
Vær også oppmerksom på at PHP-programmet ikke vet hvilken nettside det kjører under når det startes fra en cronjob. $_SERVER['SERVER_NAME'] er tom, og også en include vil mislykkes fordi det ikke finnes noen basissti !!
Eksempelkode du kan ta med i cron-programmet for å unngå dette:
- $pad = "/home/<usrname>/domains/<uwdomein.xx>/public_html"; (husk å bytte ut <usrdir> og <uwdomein.xx>!!!)
- $_SERVER['SERVER_NAME'] = 'dittdomene.xx';
- $_SERVER['DOCUMENT_ROOT'] = $pad;
- set_include_path($pad . PATH_SEPARATOR . ini_get("include_path"));
