স্যুইচটি httpd
ব্যবহার করে এটির কনফিগারেশন ফাইলগুলি সন্ধান করতে কোথায় কনফিগার করা হয়েছে তা আপনি দেখতে পারবেন -V
:
$ httpd -V
Server version: Apache/2.2.15 (Unix)
Server built: Feb 13 2012 22:31:42
Server's Module Magic Number: 20051115:24
Server loaded: APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT="/etc/httpd"
-D SUEXEC_BIN="/usr/sbin/suexec"
-D DEFAULT_PIDLOG="run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="logs/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
lsof
ইউনিক্স প্রক্রিয়া কোন ফাইলগুলি অ্যাক্সেস করছে তা দেখতে আপনি কমান্ডটিও ব্যবহার করতে পারেন। আমার সংস্করণটি httpd
স্টক পোর্ট 80 ব্যবহার করছে তাই আপনার ক্ষেত্রে 80 থেকে 8443 পরিবর্তন করুন!
$ netstat -tapn|grep ::80
tcp 0 0 :::80 :::* LISTEN 5338/httpd
lsof
লগ ফাইলগুলি কোথায় লিখিত হচ্ছে তা জানতে আপনি এখন দৌড়াতে পারেন :
$ lsof -p 5338|grep log
httpd 5338 root mem REG 253,0 10440 3141 /usr/lib64/httpd/modules/mod_logio.so
httpd 5338 root mem REG 253,0 27200 3139 /usr/lib64/httpd/modules/mod_log_config.so
httpd 5338 root 2w REG 253,0 2014 395029 /var/log/httpd/error_log
httpd 5338 root 7w REG 253,0 4140 394789 /var/log/httpd/access_log
access_log
"ডিরেক্টরি" এবং "অবস্থান" নির্দেশাবলী নির্ধারণ করার জন্য আপনার পাশাপাশি কনফিগারেশন ফাইলগুলির অবস্থান নির্ধারণ করতে এবং সেগুলির মাধ্যমে খোঁজ নিতে সক্ষম হওয়া উচিত । এটি অ্যাপাচি কে কোন ফাইলগুলি পরিবেশন করতে হবে তা বলার সময় কোন স্থানীয় ডিরেক্টরি ব্যবহার করতে হবে তা নির্দিষ্ট করে।
এখন কি?
আমি access_log
সেখানে সার্ভারের বিরুদ্ধে অ্যাক্সেসের সাথে মিল রেখে সেখানে প্রবেশের প্রবেশদ্বারগুলি নিশ্চিত করে তা নিশ্চিত করে দেখতে চাই। আমি এর দ্বারা যা বোঝাচ্ছি তা হ'ল যদি আমি সার্ভারটি ব্রাউজ করি তবে আমার ফাইলে http://www.somedom.com/somefile
রেকর্ড করা এই অ্যাক্সেসটি দেখতে পাওয়া উচিত access_log
:
192.168.1.110 - - [17/Jul/2013:14:39:50 -0400] "GET /somefile HTTP/1.1" 200 4303 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/5
37.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36"
ফাইলগুলি কোথায়?
আমরা যে অর্জিত উপরোক্ত জ্ঞানটি নিতে পারি এবং এটি প্রয়োগ করতে শুরু করে:
এই বিটগুলি httpd -V
আমাদের অ্যাপাচের মূল বলে:
-D HTTPD_ROOT="/etc/httpd"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
সুতরাং আমরা প্রধান কনফিগ ফাইল জানি এখানে: /etc/httpd/conf/httpd.conf
। সুতরাং এই লাইনের জন্য ফাইলটি দেখুন:
$ grep -E "DocumentRoot|Directory \"|^Include" /etc/httpd/conf/httpd.conf |grep -v "^#"
Include conf.d/*.conf
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
<Directory "/var/www/icons">
<Directory "/var/www/cgi-bin">
<Directory "/var/www/error">
সুতরাং আমি এখন জানি যে এই ডিরেক্টরিগুলি হ'ল ফাইলটিতে আমরা দেখেছি এমন সম্ভাব্য উত্স access_log
। DocumentRoot
এবং Directories
আমি ফাইলের জন্য মাধ্যমে সন্ধান চাই somefile
। যদি এটি এর মধ্যে কোনও অবস্থানে না থাকে তবে আমি পরের আউটপুটটিতে Include
উল্লিখিত ডিরেক্টরিটিতে ফোকাস করব ।grep
/etc/httpd/conf.d/*.conf
এই ফাইলগুলি অতিরিক্ত কনফিগারেশন যা অ্যাপাচি ব্যবহার করে তাই আপনাকে grep
এই ফাইলগুলি সন্ধান করার জন্য পদক্ষেপগুলি পুনরাবৃত্তি করতে হবে ।