Какой самый элегантный способ проверить, какие модули apache включены?
linux
ubuntu
apache-http-server
ты делаешь
источник
источник
apache2: bad user name ${APACHE_RUN_USER}
sudo apache2ctl -M | sort
apache2ctl
но они не перечислены ни на странице руководства, ни вapache2ctl --help
. Это потому, что они переданыhttpd
. Они перечислены только в документации httpd .httpd -M
скажет вам, какие модули являются встроенными или общими.источник
httpd
исполняемому файлу.apache2
а нетhttpd
, поэтому оно не найдено.Ничего из приведенного выше не работает, если вы не можете запускать команды на удаленном сервере. Если у вас есть только пользовательские привилегии или их нет вообще, попробуйте создать
test.php
скрипт:Хотя это будет работать только если PHP установлен как
mod_php
.источник
Может быть , это поможет некоторым людям на общих хостах, не имеющий доступа к
httpd
,apachectl
или процессов:Включенные модули:
ls /etc/apache2/mods-enabled/
Доступные модули:
ls /etc/apache2/mods-available/
источник
Вы также можете использовать apachectl
источник
Я думаю, что на самом деле есть три вопроса здесь. Я не уверен, о чем ты спрашиваешь.
Это будет (обычно) в каталоге модулей вашего дистрибутива apache, обычно это / etc / httpd / modules /
Это можно проверить с помощью / usr / sbin / httpd -M, по крайней мере, для базовой системы apache. Если вы хотите проверить определенный файл конфигурации / usr / sbin / httpd -M -f / path / to / config / file
Чтобы получить много информации, вы можете увидеть ее по адресу http: // machinename / server-info / Это не настроено по умолчанию, вам придется настроить его. Это немного утечки информации, поэтому настройте его так что только местные жители могут видеть это.
Если вы находитесь на машине и у вас есть доступ к работающему пользователю, вы также можете увидеть, что загружено, проверив процесс. Вы можете найти родительский процесс с помощью:
Тогда проверьте
источник
Если вы находитесь на Redhat / CentOS,
httpd
используется вместоapache2ctl
.Это означает, что вам нужно использовать
Тем не менее,
httpd
почти никогда не на пути, который вы ожидаете.Я могу подтвердить на CentOS 5.8 фактический путь
/usr/sbin/httpd
.Но если это не путь, вы можете открыть его. Вот как я смог это сделать.
Сначала я проверил, как демон управляет им.
Вокруг линии 40иш
Который сказал мне точно, где его найти. Надеюсь это поможет.
источник
Список всех включенных модулей
источник
На моем gentoo я могу выполнить
apache2ctl modules
и увидеть перечисленные модули.источник
Проверка из скрипта php (для mod_xsendfile):
Проверка для PHP_SAPI должна исключать, когда php работает как CGI, так как apache_get_modules () не работает в этом контексте. Кроме того, если это выполняется на php <5.0.0, только
apache2handler
контекст даст ожидаемый результат.источник
Я создал небольшой скрипт на Python, чтобы помочь вам с этим. Пожалуйста, посмотрите на https://github.com/zioalex/unused_apache_modules
Вот что вы можете ожидать от этого:
источник