Anahtarı httpd
kullanarak yapılandırma dosyalarını arayacak şekilde nerede yapılandırıldığını görebilirsiniz -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"
Bu komutu lsof
, bir Unix işleminin hangi dosyalara eriştiğini görmek için de kullanabilirsiniz . Benim httpd
sürümüm stok portu 80 kullanıyor, bu yüzden sizin durumunuzda 80'i 8443 olarak değiştirin!
$ netstat -tapn|grep ::80
tcp 0 0 :::80 :::* LISTEN 5338/httpd
Artık lsof
günlük dosyalarının nereye yazıldığını bulmak için çalışabilirsiniz :
$ 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
Yapılandırma dosyalarının yanı sıra konumunu da belirleyebilmeli ve "Dizin" ve "Konum" yönergelerini belirlemek için bu dosyalara bakabilmelisiniz. Bunlar, Apache'ye hangi dosyaların sunulacağını söylerken hangi yerel dizinlerin kullanılacağını belirtir.
Şimdi ne olacak?
Daha sonra access_log
orada sunucuya erişim karşılık gelen girişleri olduğundan emin olmak için bakmak . Bununla ne demek istediğim ben sunucuya göz atarsanız http://www.somedom.com/somefile
ben bu erişim access_log
dosya gibi kaydedilmiş görmeliyim :
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"
Dosyalar nerede?
Aldığımız yukarıdaki bilgiyi alabilir ve aşağıdaki gibi uygulamaya başlayabilirsiniz:
Bu parçalar httpd -V
bize Apache'nin kökünü anlatıyor:
-D HTTPD_ROOT="/etc/httpd"
-D SERVER_CONFIG_FILE="conf/httpd.conf"
Ana yapılandırma dosyası biliyorum Yani burada: /etc/httpd/conf/httpd.conf
. Bu nedenle, şu satırlar için bu dosyaya bakın:
$ 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">
Artık bu dizinlerin içinde gördüğümüz dosya için potansiyel kaynaklar olduğunu biliyorum access_log
. DocumentRoot
Ve Directories
ben, dosya için bakmak istiyorum somefile
. Bu konumlardan herhangi birinde değilse, daha sonra çıktıda Include
belirtilen dizine odaklanacağım .grep
/etc/httpd/conf.d/*.conf
Bu dosyalar Apache'nin kullandığı ek yapılandırmalardır, bu nedenle grep
bu dosyaları da aramak için bu adımları kullanarak tekrarlamanız gerekir .