Apache ไม่เปิดเผยรายการตัวจัดการที่ตั้งค่าไว้ ไม่ได้ใช้apachectl
ไม่ใช่กับสิ่งอื่น
วิธีที่ดีที่สุดที่ฉันจะได้รับรายชื่อของตัวจัดการการกำหนดค่าคือการ grep โฟลเดอร์การตั้งค่า Apache สำหรับHandler
การจับทั้งหมด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-based (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) และไม่สนใจบรรทัดที่ขึ้นต้นด้วย#
แคบลงเฉพาะตัวจัดการที่ลงทะเบียน
ที่แนะนำโดยเจนนี่ในความคิดเห็นที่สายการแสดงความคิดเห็นสามารถลบออกได้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'
find /etc/httpd/ -type f -exec grep -H -v '#' {} \; | grep Handler