अपाचे कॉन्फ़िगर हैंडलर की सूची को उजागर नहीं करता है। उपयोग नहीं apachectl
, किसी और चीज के साथ नहीं।
सबसे अच्छी विधि जो मुझे कॉन्फ़िगर हैंडलर की सूची प्राप्त करने के लिए मिल सकती है, वह है अपाचे कॉन्फ़िगरेशन फ़ोल्डर 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
रेडहैट-आधारित (फेडोरा, सेंटोस) होस्ट के लिए
$ 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
(डेबियन) में खोजें और #
केवल पंजीकृत संचालकों को संकीर्ण करने के लिए शुरू होने वाली रेखाओं की उपेक्षा करें।
जैसा कि जेनी ने टिप्पणियों में सुझाया है, टिप्पणी वाली पंक्तियों को आउटपुट को फ़िल्टर करके हटाया जा सकता हैgrep -Pv '^[^ ]*:\s*#'
। यहाँ डेबियन-आधारित मशीनों के लिए अंतिम कमांड है:
$ grep -ir "Handler" /etc/apache2/* | grep -Pv '^[^ ]*:\s*#'
और रेडहैट आधारित मशीनों के लिए:
$ grep -ir "Handler" /etc/httpd/* | grep -Pv '^[^ ]*:\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