Apache는 구성된 핸들러 목록을 공개하지 않습니다. 를 사용 apachectl
하지 않고 다른 것을 사용 하지 마십시오.
구성된 핸들러 목록 을 얻는 가장 좋은 방법 은 Apache 구성 폴더를 grep하여 Handler
모든 선언 AddHandler
과 SetHandler
선언 을 잡는 것 입니다.
데비안 기반 (우분투) 호스트
$ 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
발견 된 모든 핸들러가 실제로 등록 된 것은 아닙니다. mods-enabled
(Debian)을 검색 #
하고 등록 된 핸들러 만 좁히는 것으로 시작하는 행을 무시 하십시오.
주석에서 Jenny가 제안한 것처럼 주석이있는 행은을 사용 하여 출력을 필터링하여 제거 할 수 있습니다grep -Pv '^[^ ]*:\s*#'
. 데비안 기반 머신의 최종 명령은 다음과 같습니다.
$ 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'
find /etc/httpd/ -type f -exec grep -H -v '#' {} \; | grep Handler