apache2: নিবন্ধিত হ্যান্ডলারের একটি তালিকা পান


10

অ্যাপাচি থেকে সমস্ত হ্যান্ডলারের একটি তালিকা পাওয়া সম্ভব? সঙ্গে setHandler এটা হ্যান্ডলার তৈরি করা সম্ভব।

একটি সম্ভাব্য ব্যবহার হ'ল নির্দিষ্ট ফাইল এক্সটেনশনের জন্য হ্যান্ডলার যুক্ত করা ( অ্যাডহ্যান্ডলার )। সমস্ত সম্ভাব্য হ্যান্ডলার এবং তাদের শনাক্তকারীদের জানলে কোনও ফাইল এক্সটেনশনে (বা ইউআরএল হ্যান্ডলারগুলির ক্ষেত্রে সম্ভাব্য ইউআরএলগুলির একটি তালিকা তৈরি করার ক্ষেত্রে) মিলে যাওয়ার প্রক্রিয়াটি সহজ হবে।

হ্যান্ডলারগুলি অবশ্যই কোনও ধরণের তালিকায় অ্যাপাচি কোরয়ে পরিচালনা করতে হবে - এই তালিকাটি কীভাবে পাওয়া সম্ভব?

উত্তর:


2

অ্যাপাচি কনফিগার করা হ্যান্ডলারের একটি তালিকা প্রকাশ করে না। ব্যবহার করছি 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'

2
মন্তব্য করা আউট হ্যান্ডলারগুলি থেকে মুক্তি পেতে কিছু সন্ধান এবং গ্রেপ যাদু ব্যবহার করুন:find /etc/httpd/ -type f -exec grep -H -v '#' {} \; | grep Handler
জেনি ডি

@ জেনিডি: আমি মনে করি যে এই ঘোষণার পরে মন্তব্যগুলির সাথে লাইনগুলি সরিয়ে ফেলবে, যেমন AddHandler cgi-script .cgi # Ben needs CGI
dotancohen

1
সত্য। আপনি এটি egrepএবং একটি উপযুক্ত রিজেক্সের সাহায্যে করতে পেরেছিলেন , যা পাঠকের জন্য অনুশীলন হিসাবে ছেড়ে গেছে (দুর্ভাগ্যক্রমে আমাকে এখনই কিছু অর্থ প্রদানের কাজ করতে হবে ...)
জেনি ডি

@ জেনিডি: চ্যালেঞ্জ গৃহীত হয়েছে! আমি মন্তব্য করা লাইনের জন্য একটি গ্রেপ ফিল্টার যুক্ত করেছি। ভাল চিন্তা, ধন্যবাদ!
dotancohen

হঠাৎ ডাউনবোটস কেন? এই উত্তরটি সরাসরি প্রশ্নের উত্তর দেয় এবং এমনকি দুটি অতি সাধারণ লিনাক্সের রূপগুলির উদাহরণও অন্তর্ভুক্ত করে। উত্তরটির উন্নতি হতে পারলে আমি কিছু গঠনমূলক সমালোচনার প্রশংসা করব ।
দোটানকোহেন

0

এটি আপনি যা চান তা একেবারেই নয়, তবে আপনি যদি server-infoআপনার কনফিগারেশনে হ্যান্ডলারটি সক্ষম করেন তবে আউটপুট আপনাকে জানাবে যে কোন মডিউলগুলিতে হ্যান্ডলার রয়েছে এবং কোনটি এটির মতো নয়:

Module Name: mod_negotiation.c
Content handlers: yes
....
Module Name: mod_mime.c
Content handlers: none
....

এটি অ্যাপাচি ২.২ এর সাথে ছিল, সুতরাং সম্ভবত পরবর্তী সংস্করণগুলি আপনাকে আরও দরকারী আউটপুট দেবে।


আপনাকে ধন্যবাদ, তবে আমি সেই তথ্যটি দেখছি না। এই পৃষ্ঠাটি আউটপুট দেখায় server-info। তবে খেয়াল রাখবেন যে আউটপুটটি হ'ল স্থিতিশীল পৃষ্ঠা যা সত্যিকারের সার্ভার থেকে অনুলিপি করা হয়েছে এবং রাস্পবেরি পাই এর মাধ্যমে আপনাকে পরিবেশন করা হয়েছে।
dotancohen
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.