Anda dapat melihat di mana httpddikonfigurasi untuk mencari file-file konfigurasinya menggunakan -Vsaklar:
$ 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"
Anda juga dapat menggunakan perintah lsofuntuk melihat file apa yang sedang diakses oleh proses Unix. Versi saya httpdmenggunakan stock port 80 jadi ubah 80 ke 8443 dalam casing Anda!
$ netstat -tapn|grep ::80
tcp 0 0 :::80 :::* LISTEN 5338/httpd
Anda sekarang dapat menjalankan lsofuntuk mencari tahu di mana file-file log sedang ditulis untuk:
$ 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
Anda harus dapat menentukan lokasi access_logserta file konfigurasi dan melihat melalui mereka untuk menentukan arahan "Direktori" dan "Lokasi". Ini menentukan direktori lokal apa yang akan digunakan ketika memberi tahu Apache file apa yang akan disajikan.
Sekarang apa?
Saya kemudian akan memeriksa access_loguntuk memastikan bahwa ada entri di sana yang sesuai dengan akses terhadap server. Yang saya maksud dengan ini adalah jika saya menelusuri server di http://www.somedom.com/somefilesaya akan melihat akses ini direkam dalam access_logfile seperti ini:
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"
Di mana file-file itu?
Anda dapat mengambil pengetahuan di atas yang telah kami peroleh dan mulai menerapkannya seperti ini:
Bit-bit ini dari httpd -Vmemberitahu kita root Apache:
-D HTTPD_ROOT="/etc/httpd"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
Jadi kita tahu file konfigurasi utama di sini: /etc/httpd/conf/httpd.conf. Jadi lihat file itu untuk baris berikut:
$ 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">
Jadi saya sekarang tahu bahwa direktori ini adalah sumber potensial untuk file yang kita lihat di access_log. Saya DocumentRootdan Directoriessaya mencari file somefile,. Jika tidak ada di salah satu lokasi ini maka saya selanjutnya akan fokus pada Includedirektori yang disebutkan di atas dalam grepoutput /etc/httpd/conf.d/*.conf,.
File-file ini adalah konfigurasi tambahan yang digunakan Apache sehingga Anda harus mengulangi langkah-langkah menggunakan grepuntuk melihat melalui file-file ini juga.