Centrum Pomocy
› Panel Plesk
› Jak debugować zadania cron w Plesku
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.
Wymagania: 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.php uż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 katalogu httpdocs.
- 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 ustaw 755.
- 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.log przekierowuje standardowe wyjście do pliku (dopisuje, nie nadpisuje).
- Fragment 2>&1 przekierowuje 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.log przez 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 php przez SSH lub sprawdź w dokumentacji technicznej smartxhosting.pl.
Ważne: Przed wprowadzaniem zmian w konfiguracji hostingu zalecamy wykonanie kopii zapasowej danych.
Hosting z panelem Plesk na SmartXHosting.pl — serwery NVMe SSD, WordPress Toolkit, darmowy SSL i automatyczne backupy.
Sprawdz plany hostingowe.