Uptime: 99.892%
Strony WWW:
Nowe strony WWW dzisiaj:
W SEOHOST Użytkownik jest zawsze na pierwszym miejscu! Czytaj więcej Z SEOHOST korzysta już ponad 90 000 Użytkowników! Czytaj więcej Jak Polacy marnują 164 miliony rocznie! Czytaj więcej Pierwszy taki film na YouTube od SEOHOST! Czytaj więcej Pełna transparencja: uptime naszej infrastruktury Czytaj więcej Wywiad z naszym CEO na bezprawnik.pl Czytaj więcej SEOHOST.pl zdobywa 2 miejsce w rankingu NASK. Czytaj więcej Uwaga: kolejna próba phishingu! Czytaj więcej Dlaczego warto migrować do SEOHOST? Czytaj więcej
Redakcja SEOHOST.pl
Redakcja SEOHOST.pl
30 Czerwca 2020
3 minuty

Jak uruchomić zadania cron w DirectAdmin z konkretną wersją PHP

DirectAdmin umożliwia dodawanie cyklicznych zadań cron, ale domyślnie uruchamia je z jedną, przypisaną do serwera wersją PHP. Jeśli Twój skrypt wymaga innej, konkretnej wersji interpretera (np. PHP 7.x zamiast starszej), możesz to łatwo wymusić, zmieniając jedynie ścieżkę do binarki PHP w poleceniu cron. W tym poradniku zobaczysz, jak działa domyślny cron, jak podmienić wersję PHP oraz jak poprawnie zbudować ścieżkę dla różnych wersji interpretera.

DirectAdmin i zadania cron

DirectAdmin pozwala na dodawanie cyklicznych zadań do terminarza (cron). Możesz w ten sposób automatycznie uruchamiać skrypty odpowiedzialne za kopie zapasowe, aktualizacje, synchronizację danych czy wysyłkę powiadomień.

Więcej informacji o samym dodawaniu zadań cron w panelu DirectAdmin znajdziesz w tym tekście.

Domyślna wersja PHP w zadaniach cron

Niekiedy skrypty wymagają konkretnej wersji PHP, aby działać poprawnie. Przy dodaniu do konta zadania w postaci:

/usr/local/bin/php /home/srv1171/domains/domena.pl/public_html/cron.php

zadanie zostanie uruchomione przy wykorzystaniu domyślnej wersji PHP serwera. W momencie pisania tego tekstu jest to wersja 5.6. W wielu przypadkach może to być zbyt stara wersja, jeśli aplikacja została napisana pod nowsze wydanie interpretera.

Jak zmienić wersję PHP w cronie

Można jednak zmienić fragment zadania – dokładnie ścieżkę /usr/local/bin/php – w taki sposób, aby zadanie wykonywane było, korzystając z innej niż domyślna wersji, np. PHP 7.1. Poniżej kilka przykładów takich zapisów dla tego samego skryptu, ale różnych wersji PHP.

  • dla PHP 7.1:
    /opt/alt/php71/usr/bin/php /home/srv1171/domains/domena.pl/public_html/cron.php
  • dla PHP 7.0:
    /opt/alt/php70/usr/bin/php /home/srv1171/domains/domena.pl/public_html/cron.php
  • dla PHP 5.5:
    /opt/alt/php55/usr/bin/php /home/srv1171/domains/domena.pl/public_html/cron.php

Jeśli korzystasz z wielu projektów, które wymagają różnych wersji interpretera i częstych zadań cron, rozważ elastyczny serwer VPS do obsługi cronów i wielu wersji PHP – ułatwia to separację środowisk, testowanie aktualizacji i utrzymanie stabilności aplikacji.

Schemat dla innych wersji PHP

Inne wersje PHP wywołuje się w analogiczny sposób, zmieniając cyfry w ścieżce, tak jak w przykładzie /opt/alt/php71/usr/bin/php – numery wersji podajemy bez kropki (np. 74 dla PHP 7.4). Dzięki temu możesz wymusić dokładnie tę wersję interpretera, której wymaga dany skrypt.

W praktyce wystarczy skopiować istniejące polecenie cron, podmienić początkową ścieżkę do binarki PHP i zapisać zmiany. Po kolejnym wywołaniu zadania cron skrypt zostanie uruchomiony już z nową wersją interpretera.

Zadania cron w DirectAdmin: Podsumowanie

DirectAdmin domyślnie korzysta z jednej wersji PHP dla wszystkich zadań cron, ale prostą podmianą ścieżki do interpretera możesz wymusić uruchamianie skryptów z inną, konkretną wersją. Wystarczy, że zamiast /usr/local/bin/php wskażesz odpowiednią binarkę, np. /opt/alt/php71/usr/bin/php, a cron od tej pory będzie realizował zadania z wybranym wydaniem PHP. To wygodne rozwiązanie, gdy na jednym koncie utrzymujesz starsze i nowsze aplikacje, wymagające różnych wersji interpretera.

Ważne: przed zmianą wersji PHP w zadaniach cron upewnij się, że wskazana wersja faktycznie jest dostępna na serwerze oraz że skrypt jest z nią zgodny. Warto też monitorować logi błędów PHP po pierwszych uruchomieniach z nową wersją – pozwoli to szybko wychwycić niekompatybilne funkcje lub ostrzeżenia, zanim wpłyną na działanie całej aplikacji.

Czy udało Ci się rozwiązać problem?
Nie znalazłeś odpowiedzi na swoje pytanie?