Apache n'expose pas une liste de gestionnaires configurés. Ne pas utiliser apachectl
, pas avec autre chose.
La meilleure méthode que j'ai pu trouver pour obtenir une liste des gestionnaires configurés est de simplement grep le dossier de configuration Apache pour Handler
tout attraper AddHandler
et les SetHandler
déclarations.
Pour les hôtes basés sur 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
Pour les hôtes basés sur 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
Notez que tous les gestionnaires trouvés ne sont pas enregistrés! Recherchez dans mods-enabled
(Debian) et ignorez les lignes commençant par #
pour limiter uniquement les gestionnaires enregistrés.
Comme suggéré par Jenny dans les commentaires, les lignes commentées peuvent être supprimées en filtrant la sortie avec grep -Pv '^[^ ]*:\s*#'
. Voici la commande finale pour les machines basées sur Debian:
$ grep -ir "Handler" /etc/apache2/* | grep -Pv '^[^ ]*:\s*#'
Et pour les machines basées sur Redhat:
$ grep -ir "Handler" /etc/httpd/* | grep -Pv '^[^ ]*:\s*#'
Dans les commentaires, l'utilisateur gogoud fournit un moyen supplémentaire de supprimer les gestionnaires commentés, renvoyant ainsi uniquement les gestionnaires enregistrés:
// 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