Anda dapat melihat di mana httpd
dikonfigurasikan untuk mencari file konfigurasi menggunakan -V
saklar:
$ 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 lsof
untuk melihat file apa yang sedang diakses oleh proses Unix. Versi saya httpd
menggunakan stock port 80 jadi ubah 80 ke 8443 di casing Anda!
$ netstat -tapn|grep ::80
tcp 0 0 :::80 :::* LISTEN 5338/httpd
Anda sekarang dapat menjalankan lsof
untuk 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_log
serta 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_log
untuk 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/somefile
Saya harus melihat akses ini direkam dalam access_log
file 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-nya?
Anda dapat mengambil pengetahuan di atas yang telah kami peroleh dan mulai menerapkannya seperti ini:
Bit-bit ini dari httpd -V
memberitahu 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 DocumentRoot
dan Directories
saya akan mencari file somefile
,. Jika tidak ada di salah satu lokasi ini maka saya selanjutnya akan fokus pada Include
direktori yang disebutkan di atas dalam grep
output /etc/httpd/conf.d/*.conf
,.
File-file ini adalah konfigurasi tambahan yang digunakan Apache sehingga Anda harus mengulangi langkah-langkah menggunakan grep
untuk melihat melalui file-file ini juga.