Apache no expone una lista de controladores configurados. Sin usar apachectl, no con nada más.
El mejor método que podría encontrar para obtener una lista de controladores configurados es simplemente grep la carpeta de configuración de Apache para Handlercapturar todo AddHandlery SetHandlerdeclaraciones.
Para hosts basados en 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
Para hosts basados en 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
¡Tenga en cuenta que no todos los controladores encontrados están de hecho registrados! Busque en mods-enabled(Debian) y haga caso omiso de las líneas que comienzan #por reducir solo los controladores registrados.
Como lo sugirió Jenny en los comentarios, las líneas comentadas se pueden eliminar filtrando la salida con grep -Pv '^[^ ]*:\s*#'. Aquí está el comando final para máquinas basadas en Debian:
$ grep -ir "Handler" /etc/apache2/* | grep -Pv '^[^ ]*:\s*#'
Y para máquinas basadas en Redhat:
$ grep -ir "Handler" /etc/httpd/* | grep -Pv '^[^ ]*:\s*#'
En los comentarios, el usuario gogoud proporciona una forma adicional de eliminar los controladores comentados, devolviendo así solo los controladores registrados:
// 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