Jak potwierdzić, który plik PHP jest uruchomiony w Apache?

0

Mam sytuację, w której mój VPS wyczerpał się z powodu mojej strony. Jak potwierdzić, który plik PHP jest uruchomiony przez Apache? Więc mogę rozwiązać ten problem.

Spróbowałem poleceń lsof -p, ps -f, strace -p, ale nikt mi nie pomoże, ponieważ wszystkie nadchodzące pliki są plikami apache, takimi jak /usr/local/zend/apache2/bin/httpd, /usr/local/zend/apache2/modules/mod_unique_id.so.

enter image description here

enter image description here

prince
źródło
Czy próbowałeś tego jako sudo?
MariusMatutiae
W jaki sposób? Nie sądzę, że pomoże mi to.
prince
To pomaga, jeśli robisz lsof -p pidof apache2 lub coś takiego.
MariusMatutiae

Odpowiedzi:

0

Posługiwać się sudo tylko w razie potrzeby. Wypisz wszystkie procesy, a następnie powiedz grep aby wyprowadzać tylko wiersze ze słowem php.

sudo ps aux | grep php

Przeczytaj dane wyjściowe zgodnie z poniższym nagłówkiem

USER       PID  %CPU %MEM  VSZ RSS     TTY   STAT START   TIME COMMAND
Huzaib Shafi
źródło
0

Jeśli próbujesz uzyskać pełną ścieżkę do działającego modułu PHP Apache, zrób to.

Plik PHP używany przez Apache powinien mieć nazwę libphp5.so. Więc możesz to uruchomić lsof polecenie przez sudo:

sudo lsof | grep libphp5.so

Które powinny zwrócić cały stos wyników z prawie wszystkimi pokazującymi pełną ścieżkę do libphp5.so powinno to być coś takiego, jeśli korzystasz z systemu Ubuntu / Debian:

/usr/lib/apache2/modules/libphp5.so

Jeśli próbujesz monitorować serwer Apache, aby dowiedzieć się, który plik może go zadławić, zrób to.

To powiedziawszy, nie jest dla mnie jasne z twojego pytania, co masz na myśli mówiąc „Jak potwierdzić, który plik PHP działa w Apache?” Od ponownego przeczytania, co sprawia, że ​​myślę, że być może próbujesz dowiedzieć się, jaki skrypt PHP dławi twój serwer, a nie jaki moduł PHP ładuje? Ponieważ rzeczywisty moduł PHP ładuje się prosto, jest to tylko parser PHP, którego używa Apache. Ale skrypt PHP, który uruchamiasz przez tę konfigurację, jest zupełnie inny.

Problem polega na tym, że sposób, w jaki działa Apache, zawartość / pliki są analizowane na żądanie. Musisz więc uruchomić narzędzie, które będzie monitorować żądania Apache w czasie rzeczywistym, aby uzyskać potrzebne informacje. Jest kilka sposobów, aby to zrobić z linii poleceń.

Używanie Apache Top do monitorowania serwera WWW Apache.

Po pierwsze, możesz zainstalować i uruchomić Apache Top który jest podobny do standardowego Linux / Unix top ale dla procesów Apache. Na przykład, jest to miły / prosty sposób monitorowania plików dziennika serwera WWW w czasie rzeczywistym za pomocą Apache Top:

apachetop -r 2 -f /var/log/apache2/access.log

The -r 2 odświeży wyjście co 2 sekundy, a -f /var/log/apache2/access.log mówi apache-top raportować informacje z dostarczonego dziennika Apache. W tym przykładzie ładuje domyślny plik dziennika Apache z instalacji Ubuntu / Debiana, ale należy zmienić tę pełną ścieżkę pliku, aby pasowała do rzeczywistej lokalizacji pliku dziennika Apache.

Używanie ELinks do monitorowania serwera WWW Apache.

Inną metodą używaną do monitorowania Apache na serwerze jest użycie ELinks i domyślny adres URL statusu Apache w następujący sposób:

elinks http://localhost/server-status?refresh=1

ELinks to po prostu przeglądarka internetowa oparta na tekście. Jeśli więc uruchomisz to z wiersza poleceń, po prostu załaduje się przekazany do niego adres URL i jeśli zauważysz, że ten adres URL zawiera refresh=1 parametr, który po prostu mówi server-status odświeżyć się co sekundę.

JakeGould
źródło