✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Pokazywanie stanu pracy serwera na stronach internetowych używających PHP i Crontab

9

Wszyscy wiemy, wcześniej, w tym poście, że możemy użyć shell_exec lub exec w PHP, aby uzyskać wyjście zewnętrznego programu na serwerze. Czyli oczywiście możemy uruchomić polecenie uptime linuxa, aby uzyskać status serwera, co daje coś takiego (lub jeśli przewiniesz tego bloga, na końcu tej strony znajdziesz aktualizację statusu prawie w czasie rzeczywistym, czyli aktualizowaną co 5 minut):

 10:25:01 up 31 days, 15:17,  0 users,  load average: 0.01, 0.09, 0.12

Jednak z tych powodów nie zaleca się bezpośredniego wywoływania polecenia uptime za pomocą shell_exec lub exec .
Po pierwsze, shell_exec i exec mogą być wyłączone (o ile mi wiadomo) przez firmy hostingowe, głównie na współdzielonych hostach ze względów bezpieczeństwa. Fasthosts wyłącza to, ale Godday z drugiej strony nie zabrania tego użycia. Po drugie, uruchamianie tych dwóch poleceń w czasie rzeczywistym w skryptach PHP jest uważane za nieefektywne i czasochłonne (CPU).

Prawidłowy/zalecany sposób uzyskania takich informacji jest następujący: Najpierw utwórz crontab, który uruchamia się w odstępach czasowych np. co 2 minuty na serwerze, używając crontab -e będziesz mógł edytować zadania za pomocą ulubionego edytora tekstu, takiego jak jako nano lub vim.

Tak więc co 2 minuty (usuń /2 za każdą minutę) plik uptime.txt będzie aktualizowany i umieszczany w publicznym folderze HTTP. Możesz więc użyć następującego skryptu PHP do uzyskania takich danych.

Brzmi całkiem prosto, prawda? Daje to stosunkowo dokładny stan dostępności i możesz umieścić te informacje w footer.php bloga wordpress (na przykład przewiń w dół do końca strony).

Możesz również użyć zmiennej serwera DOCUMENT_ROOT, która reprezentuje katalog główny witryny. Upewnij się więc, że plik uptime.txt znajduje się w katalogu głównym witryny.

$uptime = ''; $uptimefile = $_SERVER['DOCUMENT_ROOT']. '/uptime.txt'; if (is_file($uptimefile)) {     $uptime = @file_get_contents($uptimefile); }  

Źródło nagrywania: helloacm.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów