आप देख सकते हैं 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
इन फ़ाइलों के माध्यम से भी देखने के लिए चरणों का उपयोग करने की आवश्यकता होगी ।