अपाचे फिर से लोड करने में विफल रहता है ... क्या कोई लॉग है जिसे मैं विवरण के लिए देख सकता हूं?


12

मेरे पास एक वेबसर्वर है जो मैं एक साइट को जोड़ने पर काम कर रहा हूं।

दौड़ने के बाद a2ensite, मैं भागा service apache2 reload, और यह मिला:

[विफल] वेब सर्वर कॉन्फ़िगरेशन को पुनः लोड करना: apache2 विफल!

क्या कोई लॉग फ़ाइल है जिसे मैं अधिक जानकारी के लिए देख सकता हूं?

जवाबों:


9

आप देख सकते हैं 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_logDocumentRootऔर Directoriesमैं, फ़ाइल के लिए के माध्यम से देखना चाहते हैं somefile। यदि यह इन स्थानों में से किसी में भी नहीं है, तो मैं अगली बार आउटपुट Includeमें उल्लिखित निर्देशिका पर ध्यान केंद्रित करूँगा ।grep/etc/httpd/conf.d/*.conf

ये फाइलें अतिरिक्त कॉन्फ़िगरेशन हैं जो अपाचे का उपयोग करती हैं इसलिए आपको grepइन फ़ाइलों के माध्यम से भी देखने के लिए चरणों का उपयोग करने की आवश्यकता होगी ।


14

यदि आपको लॉग फ़ाइल नहीं मिल रही है या लॉग फ़ाइल खाली है तो आप अपाचे कॉन्फ़िगरेशन टेस्ट चला सकते हैं जो कॉन्फ़िगरेशन फ़ाइलों के साथ किसी भी समस्या का प्रिंट आउट लेगा:

apachectl configtest

2

भागो service apache2 restart। यह किसी भी त्रुटि संदेश को प्रदर्शित करेगा (आमतौर पर सेवा अपाचे को रोकने और शुरू करने से पहले एक कॉन्फ़िगर परीक्षण चलाता है)

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