apache2: Получите список зарегистрированных обработчиков

Попытайтесь идти в Страницу Проекта сначала и затем нажмите "Files".

Страницей проекта для MySQLBIND является http://sourceforge.net/projects/mysql-bind/

Страницей проекта для dnsSQLpanel является http://sourceforge.net/projects/dnsqlpanel/

10
задан 16 September 2010 в 23:41
2 ответа

Apache не предоставляет список настроенных обработчиков. Без использования apachectl , ни с чем другим.

Лучший метод, который я смог найти для получения списка настроенных обработчиков , - это просто выполнить grep по папке конфигурации Apache для Обработчик для перехвата всех объявлений AddHandler и SetHandler .

Для хостов на основе Debian (Ubuntu)

$ grep -ir "Handler" /etc/apache2/*
mods-enabled/php5.conf: SetHandler application/x-httpd-php
mods-enabled/php5.conf: SetHandler application/x-httpd-php-source
apache2.conf:           SetHandler server-status
mods-available/info.conf:    SetHandler server-info
mods-available/ldap.conf:    SetHandler ldap-status
mods-available/status.conf:  SetHandler server-status
mods-available/php5.conf:    SetHandler application/x-httpd-php
mods-available/php5.conf:    SetHandler application/x-httpd-php-source
sites-available/default:     AddHandler cgi-script .cgi
sites-enabled/000-default:   AddHandler cgi-script .cgi

Для хостов на основе Redhat (Fedora, CentOS) хосты

$ grep -ir "Handler" /etc/httpd/*
conf.d/php.conf:  AddHandler php5-script .php
conf/httpd.conf:  #AddHandler cgi-script .cgi
conf/httpd.conf:  #AddHandler send-as-is asis
conf/httpd.conf:  AddHandler type-map var
conf/httpd.conf:  #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
conf/httpd.conf:     AddHandler type-map var
conf/httpd.conf:#    SetHandler server-status
conf/httpd.conf:#    SetHandler server-info
conf.d/fcgid.conf:   AddHandler fcgid-script fcg fcgi fpl
conf.d/perl.conf:#   SetHandler perl-script
conf.d/perl.conf:#   SetHandler perl-script

Обратите внимание, что не все найденные обработчики на самом деле зарегистрированы! Ищите в с включенными модами (Debian) и игнорируйте строки, начинающиеся с # , только чтобы сузить круг. зарегистрированные обработчики.

Как предложила Дженни в комментариях, закомментированные строки могут быть удалены путем фильтрации вывода с помощью grep -Pv '^ [^] *: \ s * #' . Вот последняя команда для машин на базе Debian:

$ grep -ir "Handler" /etc/apache2/* | grep -Pv '^[^ ]*:\s*#'

И для машин на базе Redhat:

$ grep -ir "Handler" /etc/httpd/* | grep -Pv '^[^ ]*:\s*#'

В комментариях пользователь gogoud предоставляет дополнительный способ вырезать закомментированные обработчики, возвращая только зарегистрированные обработчики :

// Debian or Ubuntu
$ grep -R "Handler" /etc/apache2/*enabled* | sed 's/#.*//;/^[^:]*:\s*$/d'

// Redhat, CentoOS, Fedora
$ grep -R "Handler" /etc/httpd/*enabled* | sed 's/#.*//;/^[^:]*:\s*$/d'
2
ответ дан 2 December 2019 в 22:15

Это не совсем то, что вам нужно, но если вы включите обработчик server-info в своей конфигурации, в выходных данных будет указано, какие модули имеют обработчики, а какие не надо, вот так:

Module Name: mod_negotiation.c
Content handlers: yes
....
Module Name: mod_mime.c
Content handlers: none
....

Это было с Apache 2.2, поэтому, возможно, более поздние версии дадут вам более полезный результат.

0
ответ дан 2 December 2019 в 22:15

Теги

Похожие вопросы