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
- Domyślna wersja PHP w zadaniach cron
- Jak zmienić wersję PHP w cronie
- Schemat dla innych wersji PHP
- Podsumowanie
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.