मुझे कैसे पता चलेगा कि अपाचे लॉग फाइलें कहां रखता है?


11

मुझे यह खोजने की आवश्यकता है कि अपाचे किसी साइट के लिए एक्सेस और एरर लॉग्स कहां रख रहा है

मेरे पास एक सर्वर तक रूट एक्सेस है जहां दर्जनों साइटें होस्ट की जाती हैं। मैं उन साइटों में से एक को डीबग करने का प्रयास कर रहा हूं। जब मैं साइट ब्राउज़, उस पर दिखाई नहीं देता /var/logs/apache2/access.logया /var/logs/apache2/error.log। (फाइलें वहीं हैं , और अन्य साइटें उन पर लॉग इन हो जाती हैं। वास्तव में, सैकड़ों अलग लॉग फाइलें हैं)।

न तो locate httpd.logहै और न ही find . -iname httpd.logमें प्रदर्शन /मुद्दा कोई भी परिणाम।

साइट के लिए अपाचे विन्यास है:

ServerName REDACTED.com.br
DocumentRoot /var/www/xyz/wiki
AssignUserId xyz_wiki xyz_wiki

<Directory /var/www/xyz/wiki/data>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/conf>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/bin>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/inc>
order allow,deny
deny from all
</Directory>

php_admin_value open_basedir /var/www/xyz/wiki/:/mnt/vdImagem/www/xyz/wiki/

6
यह एक धोखा नहीं है, ओपी ने प्रश्न में स्वयं प्रस्तावित डुप्लिकेट से जुड़ा हुआ है और स्पष्ट रूप से कहा है कि यह जानकारी नहीं है /var/log/apache2/access.logजिसमें डुप्लिकेट का सुझाव है।
terdon

कोशिश करेंsudo lsof -nP -c apache2 -c httpd | grep -i log
स्टीफन चेज़लस

जवाबों:


5

आप अपाचे की लॉग फ़ाइलों से उसकी जानकारी के बारे में पूछताछ कर सकते हैं लेकिन आम तौर पर वास्तविक निष्पादन योग्य से इन चीजों के बारे में पूछताछ करना बेहतर है। लॉग को पार्स करना मुश्किल हो सकता है और यदि आप किसी बॉक्स में एक विशेष सेटअप के साथ परिचित नहीं हैं, तो आप गलती करेंगे।

httpd- वी

$ 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"

आप जिन मुख्य वस्तुओं को देखना चाहते हैं, वे इस प्रकार हैं।

  1. यह आपको "रूट" निर्देशिका बताता है कि अपाचे सभी फाइलें किस संदर्भ से शुरू होंगी:

     -D HTTPD_ROOT="/etc/httpd"
    
  2. कॉन्फिग फाइलों को यहां शुरू किया गया है। ध्यान दें कि यह पथ # 1 में वर्णित पथ के सापेक्ष है, इसलिए यह होगा /etc/httpd/conf/httpd.conf

     -D SERVER_CONFIG_FILE="conf/httpd.conf"
    
  3. त्रुटि लॉग यहां है।

     -D DEFAULT_ERRORLOG="logs/error_log"
    

    नोट: यह एक पहली बार में थोड़ा भ्रमित हो सकता है लेकिन Red Hat डिस्ट्रोस पर एक लिंक है जिसे अक्सर इस निर्देशिका में बनाया /etc/httpdजाता है , जिसे कहा जाता है logs

    $ ls -ld /etc/httpd/logs
    lrwxrwxrwx. 1 root root 19 Jul  9  2012 /etc/httpd/logs -> ../../var/log/httpd
    
  4. अन्य लॉग फाइलें जो अपाचे द्वारा उपयोग की जा सकती हैं, उन्हें कॉन्फ़िगर फ़ाइल में आगे परिभाषित किया जाएगा /etc/httpd/conf/httpd.conf


1
httpd -V कमांड डेबियन 9 पर काम नहीं करता है
क्रिस्चिया

कोशिशapache2 -V
ड्रेक्स_

3

स्ट्रिंग के लिए अपने अपाचे कॉन्फ़िगरेशन में देखें ErrorLog

आमतौर पर अपाचे प्रक्रिया के लिए एक ही है। प्रत्येक VirtualHost अपनी स्वयं की लॉग फ़ाइलों को भी परिभाषित कर सकता है, इसलिए उन लोगों की भी जाँच करें।

अगर VirtualHost अपनी लॉग फ़ाइल को परिभाषित नहीं करता है, तो यह वैश्विक कॉन्फ़िगरेशन में निर्दिष्ट एक का उपयोग करेगा। अगर आपको लगता है कि आपको सही लॉग फ़ाइल मिल गई है, लेकिन आपको वह जानकारी नहीं दिख रही है जिसकी आपको आवश्यकता है तो उसे बढ़ाने का प्रयास करें LogLevel


1
/etc/apache2# rgrep "ErrorLog" .दर्जनों कॉन्फ़िगर फ़ाइलों को प्रदर्शित करता है जो निर्दिष्ट करते हैं ${APACHE_LOG_DIR}/error.sitename.log, लेकिन यह उनमें से एक नहीं है। /etc/apache2# rgrep "LogLevel" .मुझे केवल कुछ डिफ़ॉल्ट फाइलें मिलती हैं।
वह ब्राजील के लड़के

2
डिबियन ${APACHE_LOG_DIR}को /var/log/apache2डिफ़ॉल्ट रूप में परिभाषित किया गया है। /etc/defaults/apache2यह देखने के लिए जांचें कि क्या इसे बदल दिया गया है।
बहमट

यदि LogLevelकिसी विशेष VirtualHost के लिए कोई सेट नहीं है, तो आप एक जोड़ सकते हैं।
बहमट

1

मुझे अभी एक फाइल मिली है /etc/apache2/conf.d/other-vhosts-access-logजिसमें शामिल है

# Define an access log for VirtualHosts that don't define their own logfile
CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined

ऐसा लगता है कि यह एक ही फाइल में vhosts से सभी लॉग को मिलाने का एक तरीका है। मैंने जाँच की है और वहाँ पहुँच दर्ज की जा रही है।

( स्रोत )

उस साइट के लिए कॉन्फ़िगर फ़ाइल पर एक ErrorLog और एक AccessLog निर्देश सम्मिलित करते हुए मुझे अलग लॉग फ़ाइल प्रदान की।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.