Jak sprawdzić, czy skrypt PHP jest w tej chwili wykonywany przez serwer?

Jeśli zastanawiasz się, czy Twój skrypt PHP rzeczywiście jest uruchamiany przez serwer, dobrze trafiłeś! W tym artykule wyjaśnię, jak łatwo to sprawdzić i dlaczego warto to wiedzieć. Wszystko podane w prosty, konwersacyjny sposób – bez zbędnego żargonu. Zaczynamy!

Dlaczego sprawdzanie działania skryptu PHP jest ważne?

Każdy, kto choć raz miał styczność z PHP, wie, że nie zawsze wszystko działa tak, jak byśmy tego chcieli. Może zdarzyć się, że:

  1. Skrypt nie działa w ogóle – serwer go nie uruchamia.
  2. Działa, ale nie tak, jak powinien – np. wysyła błędy lub działa za długo.
  3. Nie wiemy, czy działa w tle – szczególnie w przypadku zadań cron lub uruchamianych ręcznie procesów.

W takich sytuacjach przydaje się szybki sposób na sprawdzenie, czy skrypt PHP faktycznie jest wykonywany.

Prosty sposób na sprawdzenie: echo i logi

Najprostszym sposobem na sprawdzenie, czy skrypt PHP działa, jest dodanie polecenia echo. To trochę jak postawienie sygnalizatora, który „macha”, kiedy kod jest wykonywany.

Oto przykład:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
echo "Skrypt został uruchomiony!";
// Reszta kodu
?>
<?php echo "Skrypt został uruchomiony!"; // Reszta kodu ?>
<?php
echo "Skrypt został uruchomiony!";
// Reszta kodu
?>

Wystarczy otworzyć ten skrypt w przeglądarce, by zobaczyć komunikat. Jeśli komunikat się pojawi – skrypt działa. Jeśli nie – coś jest nie tak.

Ale uwaga: metoda echo sprawdzi się tylko wtedy, gdy skrypt jest wykonywany w kontekście przeglądarki (czyli HTTP). Co, jeśli działa w tle, np. jako zadanie cron?

Sprawdzenie za pomocą funkcji error_log

Jeśli chcesz sprawdzić, czy skrypt działa bez konieczności wyświetlania komunikatów w przeglądarce, możesz użyć funkcji error_log.

Przykład:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
error_log("Skrypt został uruchomiony o: " . date("Y-m-d H:i:s"));
// Reszta kodu
?>
<?php error_log("Skrypt został uruchomiony o: " . date("Y-m-d H:i:s")); // Reszta kodu ?>
<?php
error_log("Skrypt został uruchomiony o: " . date("Y-m-d H:i:s"));
// Reszta kodu
?>

Taki zapis sprawi, że informacja o uruchomieniu skryptu trafi do logów serwera (najczęściej w pliku error.log lub innym skonfigurowanym dla serwera). To doskonały sposób na monitorowanie działania skryptów w tle.

Zaawansowane metody: sprawdzanie procesów w systemie

Kiedy skrypt działa w tle, szczególnie jako proces uruchomiony przez CLI (np. z konsoli lub CRON-a), możesz sprawdzić jego działanie bezpośrednio w systemie operacyjnym.

Na serwerach Linux

Linux oferuje narzędzie ps, które pokazuje wszystkie aktywne procesy. Możesz użyć tego narzędzia, aby znaleźć swój skrypt PHP.

Przykład:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ps aux | grep php
ps aux | grep php
ps aux | grep php

Wynik tego polecenia pokaże wszystkie uruchomione procesy PHP. Jeśli widzisz nazwę swojego skryptu w wynikach, oznacza to, że jest wykonywany.

W PHP: sprawdzanie aktywności procesu

Możesz napisać prosty kod PHP, który sprawdzi, czy dany skrypt działa. Posłuży nam tutaj funkcja exec:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
$scriptName = 'mój_skrypt.php';
$output = [];
exec("ps aux | grep $scriptName", $output);
if (count($output) > 2) {
echo "Skrypt $scriptName jest uruchomiony.";
} else {
echo "Skrypt $scriptName nie działa.";
}
?>
<?php $scriptName = 'mój_skrypt.php'; $output = []; exec("ps aux | grep $scriptName", $output); if (count($output) > 2) { echo "Skrypt $scriptName jest uruchomiony."; } else { echo "Skrypt $scriptName nie działa."; } ?>
<?php
$scriptName = 'mój_skrypt.php';
$output = [];
exec("ps aux | grep $scriptName", $output);

if (count($output) > 2) {
    echo "Skrypt $scriptName jest uruchomiony.";
} else {
    echo "Skrypt $scriptName nie działa.";
}
?>

Tutaj exec wywołuje polecenie systemowe ps aux | grep, a wynik zapisuje w tablicy $output. Jeśli znajdziesz więcej niż jedną linię (grep zwykle znajduje też samą komendę grep), oznacza to, że skrypt działa.

Monitorowanie w czasie rzeczywistym

Chcesz wiedzieć, czy Twój skrypt działa w czasie rzeczywistym? Możesz użyć menedżera procesów w stylu htop na serwerze. To narzędzie pokazuje wszystkie procesy w bardziej przyjaznym widoku.

Aby go uruchomić, wpisz:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
htop
htop
htop

Następnie użyj opcji wyszukiwania (zwykle klawisz /), aby znaleźć swoje procesy PHP.

Inne metody: file_put_contents

Czasami warto sprawdzić, czy skrypt został uruchomiony, zapisując coś w pliku. To metoda, która działa niezależnie od serwera czy przeglądarki.

Przykład:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
file_put_contents("status.txt", "Skrypt działa: " . date("Y-m-d H:i:s") . PHP_EOL, FILE_APPEND);
?>
<?php file_put_contents("status.txt", "Skrypt działa: " . date("Y-m-d H:i:s") . PHP_EOL, FILE_APPEND); ?>
<?php
file_put_contents("status.txt", "Skrypt działa: " . date("Y-m-d H:i:s") . PHP_EOL, FILE_APPEND);
?>

Uruchomienie tego skryptu spowoduje zapisanie informacji o uruchomieniu do pliku status.txt. W każdej chwili możesz otworzyć ten plik i sprawdzić, kiedy skrypt został wykonany.

Sprawdzanie w kontekście zadań CRON

Jeśli używasz CRON-a do uruchamiania skryptów PHP, sprawdzenie ich działania może być nieco bardziej skomplikowane. CRON działa w tle, więc nie możesz użyć prostego echo. Zamiast tego:

  1. Zapisuj logi (użyj wcześniej opisanej metody file_put_contents lub error_log).
  2. Sprawdzaj procesy (np. ps aux).
  3. Użyj narzędzi do monitorowania CRON-a, takich jak cronjob log.

Przykład konfiguracji CRON-a z logowaniem

Dodaj w crontab:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
* * * * * /usr/bin/php /ścieżka/do/twojego/skryptu.php >> /ścieżka/do/logu.log 2>&1
* * * * * /usr/bin/php /ścieżka/do/twojego/skryptu.php >> /ścieżka/do/logu.log 2>&1
* * * * * /usr/bin/php /ścieżka/do/twojego/skryptu.php >> /ścieżka/do/logu.log 2>&1

Ten zapis przekierowuje wyjście standardowe i błędy do pliku logu.log, gdzie możesz sprawdzić wyniki działania skryptu.

Jak sprawdzić zakończenie działania skryptu?

Czasami ważniejsze od sprawdzenia, czy skrypt jest uruchomiony, jest upewnienie się, że zakończył działanie. Możesz to zrobić, zapisując stan końcowy w pliku lub bazie danych.

Przykład:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
// Na końcu skryptu
file_put_contents("status.txt", "Skrypt zakończył działanie: " . date("Y-m-d H:i:s") . PHP_EOL, FILE_APPEND);
?>
<?php // Na końcu skryptu file_put_contents("status.txt", "Skrypt zakończył działanie: " . date("Y-m-d H:i:s") . PHP_EOL, FILE_APPEND); ?>
<?php
// Na końcu skryptu
file_put_contents("status.txt", "Skrypt zakończył działanie: " . date("Y-m-d H:i:s") . PHP_EOL, FILE_APPEND);
?>

Jak widzisz, sprawdzenie, czy skrypt PHP jest wykonywany przez serwer, nie musi być trudne. Możesz użyć prostych metod, takich jak echo, czy bardziej zaawansowanych, jak ps aux lub file_put_contents. Ważne, by dostosować rozwiązanie do swoich potrzeb – czy to dla skryptów uruchamianych w przeglądarce, czy w tle.

Szukasz taniego i dobrego hostingu dla swojej strony www? - Sprawdź Seohost.pl