Jak uruchomić inną wersję PHP z crona lub konsoli?
W konsoli SSH i zadaniu CRON możesz wywołać konkretną wersję PHP, podając nazwę jej programu. Dzięki temu skrypt nie zależy od tego, jaką wersję uruchamia samo polecenie php. W przykładach używamy PHP 8.4 — wybierz wersję dostępną na swoim serwerze i zgodną z aplikacją.
1. Sprawdź wybraną wersję PHP
Po połączeniu przez SSH sprawdź interpreter, czyli program wykonujący skrypt:
php8.4 -v
Hostido stosuje nazwy phpX.Y, np. php8.4. Pełna ścieżka ma postać /usr/local/bin/php8.4. Jeśli otrzymasz komunikat o braku polecenia lub pliku, sprawdź dostępność danej wersji dla swojej usługi.
2. Uruchom skrypt wskazanym interpreterem
Podaj pełną ścieżkę do pliku PHP. W poniższym poleceniu zastąp nazwę konta, domenę i nazwę pliku swoimi danymi:
Uruchomienie wykona kod skryptu, a więc może zmienić dane aplikacji. Przed próbą sprawdź, do czego służy wybrany plik i czy można bezpiecznie uruchamiać go ręcznie.
/usr/local/bin/php8.4 /home/hostXXXXXX/domains/example.com/public_html/skrypt.php
3. Użyj tej samej ścieżki w CRON
W polu polecenia zadania CRON wpisz pełną ścieżkę do PHP oraz do skryptu. Harmonogram ustaw osobno w przeznaczonych do tego polach. Pełne ścieżki ograniczają różnice między środowiskiem konsoli i harmonogramu.
Jeżeli aplikacja wymaga uruchomienia z konkretnego katalogu, przejdź do niego w poleceniu, a dopiero potem wykonaj skrypt:
cd /home/hostXXXXXX/domains/example.com/public_html && /usr/local/bin/php8.4 skrypt.php
Opcjonalnie: zmień polecenie php w swojej konsoli
Jeżeli chcesz zmienić polecenie php tylko dla swojego konta SSH, możesz utworzyć dowiązanie w katalogu ~/bin. Najpierw sprawdź ls -l ~/bin/php. Jeśli plik lub dowiązanie już istnieje, ustal jego przeznaczenie przed zmianą; nie nadpisuj go w ciemno.
mkdir -p ~/bin
ln -s /usr/local/bin/php8.4 ~/bin/php
Zaloguj się ponownie i sprawdź command -v php oraz php -v. Rozwiązanie wymaga, aby ~/bin znajdował się wcześniej w zmiennej PATH niż katalog z dotychczasowym PHP. W CRON nadal możesz podawać pełną ścieżkę bez zmiany domyślnego polecenia.
Aby cofnąć tę konkretną zmianę, najpierw potwierdź przez ls -l ~/bin/php, że jest to utworzone przez Ciebie dowiązanie, i usuń je poleceniem unlink ~/bin/php. Nie usuwaj innych plików w tym katalogu.
Gdy skrypt nadal działa inaczej niż strona
Sprawdź php8.4 --ini i php8.4 -m: pokażą pliki konfiguracji oraz dostępne moduły. PHP w konsoli i PHP obsługujące stronę mogą korzystać z innych ustawień. Jeśli skrypt uruchamia kolejne procesy przez samą nazwę php, sprawdź również wersję widoczną dla tych procesów.