Apache 2 स्टार्टअप चेतावनी: NameVirtualHost *: 80 में कोई VirtualHost नहीं है


68

जब मेरा उबंटू अपाचे सर्वर (अपाचे 2) शुरू होता है तो मुझे एक चेतावनी संदेश मिलता है जिसमें लिखा होता है:

[warn] NameVirtualHost *:80 has no VirtualHosts

हालाँकि, वेब सर्वर ठीक काम कर रहा है। मुझे अपनी साइट के कॉन्फ़िगरेशन में गलत क्या हो सकता है जिससे मुझे यह चेतावनी मिले?

प्रश्न में कॉन्फ़िगरेशन फ़ाइल (स्थित है /etc/apache2/sites-available) पढ़ता है (संक्षिप्तता के लिए हटाए गए विवरण)

<VirtualHost *>
    <Location /mysite>
        # Configuration details here...
    </Location>

    # Use the following for authorization.
    <LocationMatch "/mysite/login">
        AuthType Basic
        AuthName "My Site"
        AuthUserFile /etc/sitepasswords/passwd
        Require valid-user
    </LocationMatch>
</VirtualHost>

तथ्य यह है कि मैं उपयोग कर रहा हूँ <Location>समस्या का एक हिस्सा हो सकता है?

जवाबों:


53

परिवर्तन

<VirtualHost *>

पढ़ने के लिए

<VirtualHost *:80>

या इसकी (NameVirtualHost *: 80) आपकी Apache2 कन्फिगिंग फ़ाइल में दो बार जोड़ी गई। (डिफ़ॉल्ट रूप से ports.conf फ़ाइल में इसके अतिरिक्त)

इससे त्रुटि साफ होनी चाहिए।

एक तरफ: आपको इस त्रुटि को अनदेखा नहीं करना चाहिए। अपाचे का कॉन्फिगरेशन, खासकर जब वर्चुअल होस्ट्स को ग्लोब करना (जैसे /etc/httpd/vhosts.d/* शामिल करें) स्थिर नहीं है। इसका मतलब है कि आप मेजबानों को लोड करने के आदेश को स्पष्ट रूप से नियंत्रित नहीं करते हैं, इसलिए आईपी के लिए डिफ़ॉल्ट vhost पहले वाला लोड हो जाता है, जिससे अनपेक्षित परिणाम हो सकते हैं।

इसका एक उदाहरण IP के लिए डिफ़ॉल्ट vhost है जो उस नाम के बजाय उस IP पर भी उपलब्ध होगा । यह Google पर नाम के बजाय आपकी साइटों के आईपी का हवाला देते हुए लीक होने की सूचना दे सकता है, जो ग्राहकों के लिए भ्रामक हो सकता है।

ऊपर दी गई NameVirtualHost त्रुटि एक संकेत हो सकती है कि अपाचे ने चीजों को गैर-इष्टतम तरीके से लोड किया है, इसलिए आपको इसे अनदेखा नहीं करना चाहिए।


5
आप डिफ़ॉल्ट vhost को इस तरह सेट कर सकते हैं:<VirtualHost _default_ thehostname.com>
Amy B

51

ऐसा इसलिए हो सकता है क्योंकि आपके पास NameVirtualHost का निर्देश एक से अधिक स्थानों पर है।

मैं अन्य वितरणों के बारे में नहीं जानता, लेकिन उबंटू / डेबियन में, अपाचे का कॉन्फ़िगरेशन कई फ़ाइलों में विभाजित है, इसलिए आपको यह जांचना होगा कि दोहराव कहां है (httpd.conf, apache2.conf, ports.conf, conf.d / *)।

ओह, और मुझे अभी और जानकारी के साथ यह महान संसाधन मिला: आम अपाचे मिसकॉन्फ़िगरेशन


3
आपके द्वारा दिया गया लिंक अपाचे कॉन्फिग फाइलों की बारीकियों को समझने की कोशिश के लिए एक बेहतरीन संसाधन की तरह दिखता है। धन्यवाद!
किट Roed

4
धन्यवाद! यह मेरी समस्या थी - मैंने NameVirtualHost के लिए एक virtual.conf बनाया था, यह जानते हुए भी कि यह पहले से ही ports.conf में नहीं था
rcampbell

धन्यवाद - एक ubuntu सर्वर डिफ़ॉल्ट कॉन्फ़िगरेशन में यहां भी समान समस्या: ports.conf में NameVirtualHost शामिल है : 80 और साइटों को सक्षम / कॉन्फ़िगर फ़ाइलों में दोहराया नहीं जाना चाहिए !
DrSAR

1
मेरे मामले में, यह मुद्दा इसलिए था क्योंकि ubuntu में NameVirtualHost *:80दोनों थे, ports.confऔर conf.d/virtualhostsजो कि एक उबंटू बग प्रतीत होता है।
शराबी

9

डेबियन / लेन बॉक्स पर: /etc/apache2/ports.conf में एक अतिरिक्त NameVirtualHost स्टेटमेंट है - जो इस समस्या का कारण हो सकता है (/ etc / apache2 (साइट्स-उपलब्ध / डिफ़ॉल्ट) में भी यही कथन है) । मैंने उस कथन पर टिप्पणी की और त्रुटि गायब हो गई।


3

आपके पास NameVirtualHost एक मिलान वर्चुअलहॉस्ट प्रविष्टि के बिना है।

यह आमतौर पर घातक नहीं है, बस एक सूचनात्मक त्रुटि है।


3

ऐसा इसलिए है क्योंकि आपके NameVirtualHost लाइन पर एक पोर्ट नंबर है ( :80), लेकिन आपके VirtualHost सेक्शन में नहीं है।


2

AS Rune में उल्लेख किया गया है, डेबियन सिस्टम पर NameVirtualHost कई फाइलों में दिखाई देता है - ports.conf, conf.d / virtual.conf और संभवत: आपकी स्वयं की गोपनीय फाइलें int-available

सुनिश्चित करें कि यह NameVirtualHost *: 80 के रूप में एक जगह पर मौजूद है (मेरा conf.d / virtual.conf में है) और चेतावनी को जाना चाहिए।

जैसा कि उल्लेख किया गया है कि आपको प्रत्येक साइट के लिए VirtualHost दिशा बनाने की आवश्यकता है-उपलब्ध इस प्रारूप में है <VirtualHost *:80>


2

मेरे पास एक ही समस्या है, लेकिन मैं कुछ पल में अपाचे की डिफ़ॉल्ट साइट को अक्षम कर देता हूं। मुझे कुछ पसंद है

# a2dissite default

अपाचे 2 को पुनः आरंभ करने का प्रयास करने के बाद, मुझे यह संदेश प्राप्त हुआ:

"[चेतावनी] NameVirtualHost *: 80 में कोई VirtualHost नहीं है"

फिर मैं अपाचे 2 की 'डिफ़ॉल्ट' साइट को फिर से सक्षम करता हूं और सब कुछ फिर से काम करता है, उपयोग की गई कमांड है:

# a2ensite default

बस आज के लिए इतना ही!


यह सबसे अच्छी सलाह रही है।
जिनि

बहुत बढ़िया सलाह, मैं zpanelCP चल रहा हूं और कुछ भी काम नहीं किया है। धन्यवाद ! :)
एलिरन एफ्रॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.