Skapa en cronjob/schemalagd uppgift
Du kan skapa så kallade cronjobs, alltså program som körs vid förinställda tider. Det är inte tillåtet att skapa cronjobs som körs oftare än 1 gång per 10 minuter. Tunga cronjobs (som belastar processorn extremt) är inte heller tillåtna. Det körs ju fler webbplatser på samma server. Du vill inte störas av andra, och andra vill inte störas av dig. WebOké kan vid behov avbryta cronjobs. Regeln är att en cronjob inte får köras längre än 10 sekunder. Vill du köra cronjobs oftare är det tillåtet från och med POWER WEBHOST-paketen.
Om du skapar flera cronjobs gäller detta totalt, starta alltså max 1 cronjob per 10 minuter. Sprid ut dina cronjobs, det gynnar serverns prestanda.
Lägg helst in följande sats i din cronjob: set_time_limit(10). Då stoppas din cronjob om den tar längre tid än 10 sekunder. En cronjob lägger du in i kontrollpanelen.
Hur ser en cronjob ut?
En cronjob som till exempel startar ett PHP-program ser ut så här:
/usr/local/bin/php -q /home/<usrdir>/domains/<uwdomein.xx>/public_html/<taak.php>
Byt ut <usrdir> mot ditt användarnamn i DirectAdmin, <uwdomein.xx> mot ditt domännamn och <taak.php> mot ditt PHP-skript.
E-post efter varje cronjob
Som standard skickas ett mejl till ditt standardkonto för e-post. I mejlet visas eventuella fel från cron, och även eventuell utdata. Du kan läsa den brevlådan genom att på webmail.weboke.nl ange ditt kontonamn som användarnamn, lösenordet och servernamnet. Vill du inte längre få ett mejl varje gång lägger du till detta efter cronjobben: /dev/null 2>&1
Sökvägarna är lite annorlunda än via FTP
Du måste alltså ange hela sökvägen till PHP och hela sökvägen på servern till PHP-programmet. Det skiljer sig från FTP: nu står /home/usrdir först. Byt ut usrdir mot ditt eget användarnamn (det för kontrollpanelen).
Viktigt! En cronjob känner inte till något domännamn
Tänk också på att PHP-programmet i en cronjob inte vet under vilken webbplats det körs. $_SERVER['SERVER_NAME'] är tom, och även en include misslyckas eftersom det inte finns någon bassökväg!
Exempelkod att lägga in i cron-programmet för att undvika detta:
- $pad = "/home/<usrname>/domains/<uwdomein.xx>/public_html"; (glöm inte att byta ut <usrdir> och <uwdomein.xx>!)
- $_SERVER['SERVER_NAME'] = 'uwdomein.xx';
- $_SERVER['DOCUMENT_ROOT'] = $pad;
- set_include_path($pad . PATH_SEPARATOR . ini_get("include_path"));
