Apache macht keine Liste der konfigurierten Handler verfügbar. Nicht benutzen apachectl, nicht mit irgendetwas anderem.
Die beste Methode, um eine Liste der konfigurierten Handler zu erhalten, besteht darin, einfach den Apache-Konfigurationsordner zu durchsuchen Handler, um alle AddHandlerund SetHandlerDeklarationen abzufangen.
Für Debian-basierte (Ubuntu) Hosts
$ 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
Für Redhat-basierte Hosts (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
Beachten Sie, dass nicht alle gefundenen Handler tatsächlich registriert sind! Suchen Sie in mods-enabled(Debian) und ignorieren Sie Zeilen, die damit beginnen #, nur die registrierten Handler einzugrenzen.
Wie von Jenny in den Kommentaren vorgeschlagen, können kommentierte Zeilen durch Filtern der Ausgabe mit entfernt werden grep -Pv '^[^ ]*:\s*#'. Hier ist der letzte Befehl für Debian-basierte Maschinen:
$ grep -ir "Handler" /etc/apache2/* | grep -Pv '^[^ ]*:\s*#'
Und für Redhat-basierte Maschinen:
$ grep -ir "Handler" /etc/httpd/* | grep -Pv '^[^ ]*:\s*#'
In den Kommentaren bietet Benutzer gogoud eine zusätzliche Möglichkeit, kommentierte Handler zu entfernen und somit nur registrierte Handler zurückzugeben:
// 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'
find /etc/httpd/ -type f -exec grep -H -v '#' {} \; | grep Handler