Créer une cronjob / tâche planifiée
Vous pouvez créer des tâches CRON (cronjobs) : il s'agit d'un programme exécuté à des moments définis à l'avance. Il n'est pas autorisé de créer des cronjobs qui s'exécutent plus d'une fois toutes les 10 minutes. Les cronjobs lourdes (qui sollicitent fortement le processeur) ne sont pas autorisées non plus. D'autres sites web tournent en effet sur le même serveur. Vous ne voulez pas être gêné par les autres, et les autres ne veulent pas être gênés par vous. WebOké peut si nécessaire arrêter des cronjobs. La règle est qu'une cronjob ne doit pas tourner plus de 10 secondes. Si vous voulez exécuter des cronjobs plus souvent, c'est autorisé à partir des offres POWER WEBHOST.
Si vous créez plusieurs cronjobs, la règle s'applique au total : merci de ne lancer qu'une seule cronjob au maximum toutes les 10 minutes. Répartissez donc bien vos cronjobs, cela profite aux performances du serveur.
Ajoutez de préférence cette instruction dans votre cronjob : set_time_limit(10). Votre cronjob s'arrêtera ainsi si elle dure plus de 10 secondes. Vous créez une cronjob depuis le panneau de contrôle.
À quoi ressemble une cronjob
Une cronjob qui lance par exemple un programme PHP ressemble à ceci :
/usr/local/bin/php -q /home/<usrdir>/domains/<uwdomein.xx>/public_html/<taak.php>
Remplacez <usrdir> par votre nom d'utilisateur DirectAdmin, <uwdomein.xx> par votre nom de domaine et <taak.php> par votre script PHP.
Envoi d'un e-mail après chaque cronjob
Par défaut, un e-mail est envoyé à votre compte e-mail par défaut. Cet e-mail contient les éventuelles erreurs de la tâche cron, ainsi que les éventuelles sorties d'affichage. Vous pouvez consulter cette boîte mail sur webmail.weboke.nl en indiquant comme nom d'utilisateur le nom de votre compte, le mot de passe et le nom du serveur. Si vous ne voulez plus recevoir d'e-mail à chaque exécution, ajoutez ceci à la fin de la cronjob : /dev/null 2>&1
Les chemins diffèrent légèrement de ceux du FTP
Vous devez donc indiquer le chemin complet vers PHP et le chemin complet sur le serveur vers le programme PHP. C'est différent du FTP : le chemin commence ici par /home/usrdir. Remplacez usrdir par votre propre nom d'utilisateur (celui du panneau de contrôle).
Important ! Une cronjob ne connaît pas de nom de domaine
Attention : lancé depuis une cronjob, le programme PHP ne sait pas sous quel site web il tourne. $_SERVER['SERVER_NAME'] est vide, et un include échouera aussi faute de chemin de base !
Exemple de code à inclure dans le programme cron pour éviter cela :
- $pad = "/home/<usrname>/domains/<uwdomein.xx>/public_html"; (pensez à remplacer <usrdir> et <uwdomein.xx> !)
- $_SERVER['SERVER_NAME'] = 'uwdomein.xx';
- $_SERVER['DOCUMENT_ROOT'] = $pad;
- set_include_path($pad . PATH_SEPARATOR . ini_get("include_path"));
