Jak debugować zadania cron w Plesku — diagnozowanie i naprawianie cron jobs
Napraw niedziałające zadania cron w Plesk. Diagnozowanie problemów z cron jobs krok po kroku dla klientów smartxhosting.pl. Sprawdź logi i uprawnienia.
Spis treści
- Co będziesz potrzebować
- Sprawdź logi błędów w przeglądarce logów Plesk
- Przetestuj zadanie cron manualnie w Plesk
- Sprawdź i popraw ścieżki bezwzględne
- Sprawdź uprawnienia pliku skryptu
- Dodaj przekierowanie wyjścia do pliku logów
- Zweryfikuj środowisko PHP i zmienne środowiskowe
- Często zadawane pytania
Debugowanie cron Plesk jest niezbędne, gdy zaplanowane zadanie nie wykonuje się zgodnie z oczekiwaniami. Problemy z zadaniami cron w Plesk Obsidian mogą mieć wiele przyczyn: nieprawidłowe ścieżki do plików, brak uprawnień, błędy w kodzie PHP, środowisko chroot ograniczające dostęp do zasobów systemowych lub błędna konfiguracja harmonogramu. W tej instrukcji przeprowadzimy Cię przez systematyczny proces diagnozowania niedziałających zadań cron — od sprawdzenia logów błędów, przez testowanie komendy, aż po weryfikację uprawnień i ścieżek.
Co będziesz potrzebować
- Aktywne konto hostingowe w smartxhosting.pl
- Dane do logowania z e-maila powitalnego
- Skonfigurowane (niedziałające) zadanie cron do sprawdzenia
Pierwszym krokiem w diagnozowaniu problemów z cron jest zawsze sprawdzenie logów błędów. W Plesk masz do dyspozycji wbudowaną przeglądarkę logów, która agreguje błędy ze wszystkich komponentów domeny.
- Zaloguj się do panelu Plesk i przejdź do Witryny i domeny.
- Wybierz domenę, dla której skonfigurowane jest niedziałające zadanie cron.
- Kliknij Logi (ang. Logs lub Log Browser).
- Sprawdź plik error_log i poszukaj wpisów z czasem, gdy zadanie cron powinno się wykonać.
- Zanotuj wszelkie komunikaty błędów, szczególnie „command not found", „permission denied" lub błędy PHP.
Przed zagłębianiem się w szczegóły techniczne, warto przetestować zadanie bezpośrednio w Plesk używając funkcji „Uruchom teraz". Dzięki temu natychmiast zobaczysz wynik wykonania bez czekania na harmonogram.
- Przejdź do Witryny i domeny > Zadania zaplanowane.
- Znajdź niedziałające zadanie na liście.
- Kliknij przycisk Uruchom teraz (ang. Run Now) przy zadaniu.
- Plesk wykona zadanie natychmiast i wyświetli wynik lub komunikat błędu.
- Jeśli pojawia się błąd, zanotuj jego treść — to kluczowa informacja do dalszego diagnozowania.
Jedną z najczęstszych przyczyn niedziałającego cron w środowisku hostingowym jest używanie ścieżek względnych zamiast bezwzględnych. Środowisko wykonywania cron nie ma dostępu do tych samych zmiennych środowiskowych co sesja interaktywna.
- Otwórz edycję problematycznego zadania cron (kliknij jego nazwę na liście zadań zaplanowanych).
- Sprawdź komendę — czy używa pełnych, bezwzględnych ścieżek?
- Zamiast:
php cron.phpużyj:/usr/bin/php /var/www/vhosts/twojadomena.pl/httpdocs/cron.php - Upewnij się, że ścieżka do pliku PHP jest poprawna. Na systemach Linux zazwyczaj jest to
/usr/bin/php. - Uwaga: W Plesk dla Linux zadania typu „Uruchom komendę" są wykonywane w środowisku chroot — katalog główny subskrypcji traktowany jest jako korzeń systemu plików. Jeśli napotykasz błędy „plik nie znaleziony", spróbuj użyć ścieżek względem katalogu domowego użytkownika subskrypcji.
Jeśli plik skryptu nie ma odpowiednich uprawnień do odczytu lub wykonania, cron nie będzie w stanie go uruchomić. Uprawnienia pliku możesz sprawdzić i zmienić w Menedżerze plików Plesk.
- Przejdź do Witryny i domeny > wybierz domenę > Menedżer plików.
- Odnajdź plik skryptu cron (np.
cron.php) w kataloguhttpdocs. - Kliknij prawym przyciskiem na pliku lub wybierz opcję właściwości pliku, aby sprawdzić uprawnienia.
- Plik PHP powinien mieć uprawnienia co najmniej
644(czytanie przez właściciela i grupę, brak wykonywania dla skryptów shell). Dla skryptów shell ustaw755. - Zmień uprawnienia jeśli są nieprawidłowe.
Gdy standardowe metody diagnostyczne nie wskazują jednoznacznie przyczyny problemu, najskuteczniejszą techniką jest przekierowanie pełnego wyjścia zadania cron do pliku logów. Dzięki temu zobaczysz zarówno błędy jak i normalne wyjście skryptu.
- Otwórz edycję zadania cron w Plesk.
- Zmodyfikuj komendę, dodając na końcu przekierowanie wyjścia:
- Dla Linux:
/usr/bin/php /var/www/vhosts/twojadomena.pl/httpdocs/cron.php >> /tmp/cron.log 2>&1 - Fragment
>> /tmp/cron.logprzekierowuje standardowe wyjście do pliku (dopisuje, nie nadpisuje). - Fragment
2>&1przekierowuje strumień błędów (stderr) do tego samego pliku co stdout. - Zapisz zadanie i poczekaj na jego wykonanie według harmonogramu (lub kliknij Uruchom teraz).
- Sprawdź plik
/tmp/cron.logprzez Menedżer plików Plesk — plik powinien zawierać wyjście lub komunikaty błędów z wykonania skryptu.
Skrypty uruchamiane przez cron działają w ograniczonym środowisku bez zmiennych środowiskowych dostępnych w sesji interaktywnej. Może to powodować problemy z aplikacjami, które polegają na konkretnych zmiennych środowiskowych.
- Na początku skryptu PHP dodaj tymczasowo:
var_dump($_ENV); var_dump(getenv());i sprawdź, jakie zmienne środowiskowe są dostępne w kontekście cron. - Jeśli skrypt wymaga konkretnych zmiennych, ustaw je explicite na początku skryptu lub w komendzie cron przed wywołaniem skryptu.
- Sprawdź, czy skrypt PHP nie wymaga dostępu do plików konfiguracyjnych poza katalogiem domeny.
- Upewnij się, że ścieżka do PHP jest poprawna — wpisz
which phpprzez SSH lub sprawdź w dokumentacji technicznej smartxhosting.pl.
Często zadawane pytania
Dlaczego cron nie działa w Plesk?
Najczęstsze przyczyny niedziałającego cron w Plesk to: nieprawidłowe ścieżki do pliku PHP lub skryptu (środowisko cron nie dziedziczy zmiennych PATH sesji interaktywnej), brak uprawnień do wykonania pliku skryptu (chmod), błędy składni w kodzie PHP, środowisko chroot Plesk blokujące dostęp do plików poza katalogiem subskrypcji, błędna konfiguracja harmonogramu (np. nieprawidłowa strefa czasowa serwera), lub problemy z połączeniem z bazą danych (inny użytkownik systemowy wykonuje skrypt). Systematyczne sprawdzanie każdej z tych przyczyn prowadzi do szybkiego rozwiązania problemu.
Jak sprawdzić logi cron w Plesk?
Logi wykonania zadań cron w Plesk możesz sprawdzić na kilka sposobów. Przede wszystkim przejdź do Witryny i domeny > Logi (Log Browser) i sprawdź error_log — błędy z cron pojawiają się tam jako zwykłe błędy PHP lub systemowe. Możesz też dodać do komendy cron przekierowanie wyjścia: komenda >> /tmp/cron.log 2>&1 i sprawdź plik /tmp/cron.log przez Menedżer plików. Najszybszą metodą jest kliknięcie Uruchom teraz na zadaniu cron — wynik jest wyświetlany od razu po wykonaniu w interfejsie Plesk.
Czy cron działa gdy strona jest offline?
Tak, zadania cron działają niezależnie od stanu witryny internetowej. Cron to system zaplanowanych zadań działający na poziomie serwera operacyjnego — jest całkowicie niezależny od serwera WWW (Apache/Nginx) i dostępności Twojej domeny w sieci. Oznacza to, że nawet jeśli Twoja strona jest chwilowo niedostępna z powodu problemów technicznych, skonfigurowane zadania cron nadal będą wykonywane zgodnie z harmonogramem. Wyjątkiem jest zawieszenie całej subskrypcji przez dostawcę hostingu.
Jak przetestować cron job bez czekania?
Aby przetestować zadanie cron bez czekania na zaplanowany czas wykonania, użyj przycisku Uruchom teraz (ang. Run Now) dostępnego na liście zadań zaplanowanych w Plesk (Witryny i domeny > Zadania zaplanowane). Kliknięcie tego przycisku natychmiast uruchamia zadanie cron w tym samym środowisku, w którym byłoby uruchamiane automatycznie, i wyświetla wynik lub komunikat błędu. Dzięki temu możesz wielokrotnie testować i poprawiać konfigurację przed finalnym uruchomieniem według harmonogramu.
Potrzebujesz pomocy z Plesk?
Zespół smartxhosting.pl chętnie pomoże Ci skonfigurować hosting i rozwiązać problemy z panelem Plesk.
Skontaktuj się z nami