У меня ситуация, когда у моего VPS кончилась загрузка процессора из-за моего сайта. Как подтвердить, какой файл PHP запущен Apache? Так что я могу решить эту проблему.

Я пробовал команды lsof -p , ps -f , strace -p , но мне никто не помог, потому что все, что выходит, - это файлы apache, такие как /usr/local/zend/apache2/bin/httpd , /usr/local/zend/apache2/modules/mod_unique_id.so .

2 ответа2

0

Используйте sudo только при необходимости. Перечислите все процессы, а затем скажите, что grep выводит только строки, содержащие слово php .

sudo ps aux | grep php

Прочитайте вывод согласно следующему заголовку

USER       PID  %CPU %MEM  VSZ RSS     TTY   STAT START   TIME COMMAND
0

Если вы пытаетесь получить полный путь к работающему модулю Apache PHP, сделайте это.

Файл PHP, используемый Apache, должен называться libphp5.so . Таким образом, вы можете запустить эту команду lsof через sudo:

sudo lsof | grep libphp5.so

Это должно вернуть целую кучу результатов, причем почти все они показывают полный путь к libphp5.so что должно быть примерно так, если вы работаете в системе Ubuntu/Debian:

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

Если вы пытаетесь контролировать свой сервер Apache, чтобы выяснить, какой файл может его подавить, сделайте это.

Тем не менее, из вашего вопроса мне неясно, что вы подразумеваете под «Как подтвердить, какой файл PHP работает в Apache?» после перечитывания это заставляет меня думать, что, возможно, вы пытаетесь выяснить, какой PHP-скрипт душит ваш сервер, а не какой PHP-модуль Apache загружает? Поскольку настоящий PHP-модуль Apache загружается просто, это просто PHP-парсер, используемый Apache. Но PHP-скрипт, который вы запускаете с помощью этой установки, - это совсем другое.

Проблема в том, что Apache работает так, что содержимое / файлы анализируются по требованию. Поэтому вам нужно запустить инструмент, который будет отслеживать запросы Apache в режиме реального времени, чтобы получить информацию, которую вы ищете в этом случае. Есть несколько способов сделать это из командной строки.

Использование Apache Top для мониторинга веб-сервера Apache.

Во-первых, вы можете установить и запустить Apache Top, которая похожа на стандартную Linux/Unix top но для процессов Apache. Например, вот хороший / простой способ отслеживать файлы журналов веб-сервера в режиме реального времени с помощью Apache Top:

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

-r 2 будет обновлять вывод каждые 2 секунды, а -f /var/log/apache2/access.log сообщает apache-top чтобы он сообщал информацию из предоставленного журнала Apache. В этом примере он загружает файл журнала Apache по умолчанию из установки Ubuntu /Debian, но вы должны изменить этот полный путь к файлу, чтобы он соответствовал вашему фактическому местоположению файла журнала Apache.

Использование ELinks для мониторинга веб-сервера Apache.

Другой метод, который я использую для мониторинга Apache на сервере, использует ELinks и URL-адрес состояния Apache по умолчанию, например:

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

ELinks - это просто текстовый веб-браузер. Поэтому, если вы запустите его из командной строки, он просто загрузит переданный ему URL-адрес, и если вы заметите, что URL-адрес включает параметр refresh=1 который в основном просто сообщает server-status обновляться каждую секунду.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .