Tworzenie zadania cron
Można tworzyć tak zwane zadania CRON, czyli programy uruchamiane o wcześniej ustalonych porach. Niedozwolone jest tworzenie zadań cron uruchamianych częściej niż 1 raz na 10 minut. Niedozwolone są również ciężkie zadania cron (które skrajnie obciążają procesor). Na jednym serwerze działa przecież wiele stron internetowych. Nikt nie chce, aby przeszkadzali mu inni, ani sam przeszkadzać innym. W razie potrzeby WebOké może przerywać zadania cron. Zasada jest taka, że zadanie cron nie może działać dłużej niż 10 sekund. Częstsze uruchamianie zadań cron jest dozwolone od pakietów POWER WEBHOST.
Przy kilku zadaniach cron zasada dotyczy ich łącznie, prosimy więc uruchamiać maks. 1 zadanie cron na 10 minut. Prosimy dobrze rozłożyć zadania w czasie, to poprawia wydajność serwera.
Najlepiej umieścić w zadaniu cron instrukcję: set_time_limit(10). Dzięki temu zadanie cron zatrzyma się, jeśli będzie trwało dłużej niż 10 sekund. Zadanie cron dodaje się w panelu sterowania.
Jak wygląda zadanie cron
Zadanie cron uruchamiające na przykład program w PHP wygląda następująco:
/usr/local/bin/php -q /home/<usrdir>/domains/<uwdomein.xx>/public_html/<taak.php>
<usrdir> należy zastąpić nazwą użytkownika DirectAdmin, <uwdomein.xx> nazwą domeny, a <taak.php> swoim skryptem PHP.
Wiadomość e-mail po każdym zadaniu cron
Domyślnie po każdym uruchomieniu wysyłana jest wiadomość na domyślne konto e-mail. Zawiera ona ewentualne błędy z crona, a także ewentualne dane wyjściowe. Tę skrzynkę można sprawdzić na webmail.weboke.nl, podając jako nazwę użytkownika nazwę konta, hasło i nazwę serwera. Aby przestać otrzymywać wiadomość za każdym razem, należy dopisać na końcu zadania cron: /dev/null 2>&1
Ścieżki są nieco inne niż przez FTP
Należy więc podać pełną ścieżkę do PHP oraz pełną ścieżkę do programu PHP na serwerze. Różni się to od FTP: na początku jest /home/usrdir. Usrdir należy zastąpić własną nazwą użytkownika (z panelu sterowania).
Ważne! Zadanie cron nie zna nazwy domeny
Należy też pamiętać, że program PHP uruchomiony z zadania cron nie wie, w ramach której strony internetowej działa. $_SERVER['SERVER_NAME'] jest puste, a także include się nie powiedzie, ponieważ brakuje ścieżki bazowej!
Przykładowy kod do umieszczenia w programie crona, aby tego uniknąć:
- $pad = "/home/<usrname>/domains/<uwdomein.xx>/public_html"; (pamiętaj, aby zastąpić <usrdir> i <uwdomein.xx>!)
- $_SERVER['SERVER_NAME'] = 'nazwadomeny.xx';
- $_SERVER['DOCUMENT_ROOT'] = $pad;
- set_include_path($pad . PATH_SEPARATOR . ini_get("include_path"));
