सवाल अपाचे 2 वर्चुअल होस्ट टूटा; सबडोमेन पर डिफ़ॉल्ट index.html प्रदर्शित किया गया, लेकिन www.subdomain पर सही सामग्री


मुझे अपाचे 2.2.14 के साथ एक उबंटू 10.04.2 वेब सर्वर के रूप में कॉन्फ़िगर किया गया एक लिनोड मिला है।

मेरे पास कुल 4 साइटें हैं, सभी परिभाषित हैं /etc/apache2/sites-available आभासी मेजबान के रूप में। सभी साइट कॉन्फ़िगरेशन के लिए लगभग समान क्लोन हैं। और सभी साइटें लेकिन मेरा आखिरी काम सफलतापूर्वक।

default:      (www.)exampleadnetwork.com
              (www.)example.com
          reseller.example.com
trouble:   client1.example.com

जब मैं जाता हूं तो मैं इस पेज को प्राप्त करता रहता हूं client1.example.com साइट:

यह काम करता हैं!

यह सर्वर के लिए डिफाल्ट वेब पेज है।

वेब सर्वर सॉफ्टवेयर चल रहा है लेकिन अभी तक कोई सामग्री नहीं जोड़ा गया है।

मेरे में ports.conf फ़ाइल मेरे पास NameVirtualHost पोर्ट 80 पर मेरे आईपी पते पर सही ढंग से सेट है।

अगर मैं "www.sub.example.com" का उपयोग करता हूं तो उपनाम साइट काम करता है! यदि मैं www के बिना इसे एक्सेस करता हूं तो मुझे उपरोक्त पोस्ट "इट वर्क्स" अंश दिखाई देता है। यहाँ तक की apache2ctl -S दिखाता है कि मेरी vhost फ़ाइल सही ढंग से पार्स करती है और मिश्रण में जोड़ दी जाती है।

मेरी vhost विन्यास फाइल निम्नानुसार है:

<VirtualHost 127.0.0.1:80>
    ServerAdmin webmaster@example.com
    ServerName  client1.example.com
    ServerAlias client1.example.com www.client1.example.com
    DocumentRoot    /srv/www/client1.example.com/public_html/
    ErrorLog    /srv/www/client1.example.com/logs/error.log
    CustomLog   /srv/www/client1.example.com/logs/access.log combined

    <directory /srv/www/client1.example.com/public_html/>
        Options -Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </directory>
</VirtualHost>

अन्य साइटें भिन्नताएं हैं:

<VirtualHost 127.0.0.1:80>
    ServerAdmin webmaster@example.com
    ServerName  example.com
    ServerAlias example.com www.example.com
    DocumentRoot    /srv/www/example.com/public_html/
    ErrorLog    /srv/www/example.com/logs/error.log
    CustomLog   /srv/www/example.com/logs/access.log combined
</VirtualHost>

एकमात्र साइट अलग-अलग सबडोमेन है:

<VirtualHost 127.0.0.1:80>
    ServerAdmin webmaster@example.com
    ServerName  reseller.example.com
    ServerAlias reseller.example.com
    DocumentRoot    /srv/www/reseller.example.com/public_html/
    ErrorLog    /srv/www/reseller.example.com/logs/error.log
    CustomLog   /srv/www/reseller.example.com/logs/access.log combined
</VirtualHost>

फाइलनाम नाम के बिना एफक्यूडीएन हैं। उपसर्ग।

मैंने पीछा किया है यह सलाह, लेकिन अभी भी सबडोमेन ठीक से नहीं पहुंच सकता है।


6
2017-07-18 20:37


मूल


आपकी कॉन्फ़िगरेशन केवल हमें उन 3 साइटों में से एक दिखाती है जहां दूसरे कॉन्फ़िगर किए गए हैं और कैसे? - Iain
वे लगभग समान तरीकों से उपलब्ध / etc / apache2 / साइट्स के तहत भी कॉन्फ़िगर किए गए हैं। इनमें से प्रत्येक के लिए एकमात्र चीज बदलती है जो डोमेन नाम (एस) के हैंडल और भौतिक पथ का सर्वर नाम है। - Robert K
फाइलों और फ़ाइल नामों की सामग्री महत्वपूर्ण हैं। - Iain
क्या आपकी त्रुटि और एक्सेस लॉग में कुछ भी प्रासंगिक है? - Iain
आप साइट्स-उपलब्ध का उल्लेख करते हैं, लेकिन वह निर्देशिका वास्तव में बहुत मायने रखती नहीं है, साइट-सक्षम में क्या सूचीबद्ध है? क्या तुम्हारा दौड़ना हुआ a2ensite सक्षम से symlink बनाने के लिए -> उपलब्ध? - Zoredache


जवाब:


मैंने एक ही समस्या का अनुभव किया और आखिरकार समस्या का समाधान हुआ जब मैंने साइट-सक्षम से इसे अनलिंक करके अपाचे में डिफ़ॉल्ट साइट को अक्षम कर दिया:

sudo unlink /etc/apache2/sites-enabled/000-default

ऐसा करने के बाद, मेरी सभी साइटें सही तरीके से प्रदर्शित होती हैं। मुझे लगता है कि यह सवाल काफी पुराना है, लेकिन उम्मीद है कि यह किसी और की मदद कर सकता है।


1
2017-09-13 13:42



मैंने यह सफलता नहीं की। - Robert K
मैंने a2dissite और पुनः लोड अपाचे का उपयोग किया - और यह काम किया। यह केवल मेरे मुख्य वर्चुअल होस्ट पर था, यह ऐसा कर रहा था ... मेरा अनुमान था कि 000-डिफ़ॉल्ट मिलान करने वाला पहला वर्चुअल होस्ट था, इसलिए इसे कभी भी उस व्यक्ति को नहीं पढ़ा जिसे मैं उपयोग करना चाहता था। - amurrell


अन्य पोस्टर के समाधान यह करेंगे।

आप "यह काम करता है" दिखाया गया है, अपने सभी Virtuall मेजबान मैच स्थानीयहोस्ट के लिए। और यदि आप "client1.example.com" को कॉल करते हैं तो अपाचे स्थानीयहोस्ट वोस्ट्स को छोड़ देगा और यदि कोई मिलान नहीं हो रहा है, तो यह से डिफ़ॉल्ट कॉन्फ़िगरेशन का उपयोग करेगा।

अन्य पोस्टर्स ने जो कहा (करो, अपने प्रारंभिक मेजबान को बदलें <VirtualHost *:80> का <VirtualHost *> अपनी डिफ़ॉल्ट vhost को अपनी इच्छित दस्तावेज़ रूट में बदलें।

मत भूलना: भले ही आप अपने वोस्ट्स को सही तरीके से परिभाषित करते हैं, सर्वर कुछ डिफ़ॉल्ट साइट पर कॉल करेगा यदि कोई आपके होस्ट सर्वर के बिना अनुरोध करता है (उदा। आईपी एड्रेस के माध्यम से)।


1
2017-11-26 22:44





ServerName और ServerAlias ​​में डुप्लिकेट प्रविष्टि के बिना इसे आज़माएं।

उदाहरण के लिए:

<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName  sub.example.com
ServerAlias www.sub.example.com
DocumentRoot    /srv/www/sub.example.com/public_html/
ErrorLog    /srv/www/sub.example.com/logs/error.log
CustomLog   /srv/www/sub.example.com/logs/access.log combined

<directory /srv/www/sub.example.com/public_html/>
    Options -Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</directory>


0
2017-07-18 20:51



कोशिश की मैं अभी भी दोनों पते तक पहुंच सकता हूं, लेकिन www के साथ केवल एक ही। उपसर्ग सही ढंग से काम करता है। - Robert K


कुछ सुझाव:

  • बदलाव <VirtualHost 127.0.0.1:80> के लिये <VirtualHost *:80>
  • क्या आपने जगह बनाई NameVirtualHost *:80 विन्यास?
  • प्रत्येक DocumentRoot के तहत एक index.html फ़ाइल रखें, स्पष्ट रूप से प्रत्येक एक अलग संदेश के साथ यह पहचानने के लिए कि आप कहां पहुंच रहे हैं
  • स्थानीयहोस्ट से एक्सेस करने का प्रयास करें और यदि यह संभव है तो दूसरे स्थान से प्रयास करें

0
2017-07-18 21:40



फिलो ऑर्डर में: लोकलहोस्ट एक्सेस रिमोट के समान है; इंडेक्स फ़ाइल की कोई ज़रूरत नहीं है, सभी अलग हैं (लेकिन कोई एक वर्डप्रेस पेज स्थापित करने के बजाए "यह काम करता है" पृष्ठ देता है; आईपी पते से * 80 में संक्रमण उसी परिणाम का उत्पादन करता है। - Robert K
क्या आपने "NameVirtualHost *: 80" रखा था? - ghm1014
हाँ। यह पहले से ही था, मैंने बस आईपी को * में बदल दिया। - Robert K
मैंने बस अपने कॉन्फ़िगरेशन को अपने डेस्कटॉप में कॉपी किया है और यह ठीक काम करता है। कुछ और होना चाहिए, कुछ अन्य कॉन्फ़िगरेशन या शायद ब्राउज़र समस्या होनी चाहिए? कैश या कुछ? - ghm1014
एफएफ, क्रोम, और curl w / एक ही परिणाम के साथ कोशिश की। मेरी कॉन्फ़िगरेशन फ़ाइलों में कुछ और होना चाहिए जो यह कर रहा है। - Robert K


क्या आपने अपनी साइटों के DNS रिज़ॉल्यूशन की जांच की है?

(www।) sub.example.com दोनों एक ही मशीन पर हल होते हैं (भले ही अलग-अलग पते हों)?

लॉग इन दोनों को जांचें, यह देखने के लिए कि क्या आपकी सभी एक्सेस उचित सर्वर (कॉन्फ़िगरेशन) पर क्लिक कर रही हैं, या यदि वे डिफ़ॉल्ट रूप से मार रहे हैं, तो "यह काम करता है!" डिफ़ॉल्ट विन्यास का डिफ़ॉल्ट पृष्ठ है।

यदि वे डिफ़ॉल्ट को मार रहे हैं, तो आपको यह पहचानना होगा कि ऐसा क्यों है ... कॉन्फ़िगरेशन के बीच अंतर क्या हैं। आईपी ​​को बदलने का प्रयास करें, जैसा कि पहले सुझाया गया है, चूंकि अपाचे वर्चुअलहोस्ट निर्देश पर बताए गए विशिष्ट आईपी पते पर कॉन्फ़िगरेशन को बाध्य करेगा।


0
2018-01-11 17:09





आपकी कॉन्फ़िगरेशन ठीक से सेटअप नहीं हैं NameVirualHost। से छुटकारा पाएं 127.0.0.1 और इसे एक वाइल्डकार्ड बनाओ *। जब आप स्पष्ट रूप से सेट करते हैं 127.0.0.1 जो उस मशीन पर आपके मशीन पर सभी कनेक्शन बांध देगा। NameVirualHost के वाइल्डकार्ड की जरूरत है *:

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName  client1.example.com
    ServerAlias client1.example.com www.client1.example.com
    DocumentRoot    /srv/www/client1.example.com/public_html/
    ErrorLog    /srv/www/client1.example.com/logs/error.log
    CustomLog   /srv/www/client1.example.com/logs/access.log combined

    <directory /srv/www/client1.example.com/public_html/>
        Options -Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </directory>
</VirtualHost>
The other sites are variations of:

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName  example.com
    ServerAlias example.com www.example.com
    DocumentRoot    /srv/www/example.com/public_html/
    ErrorLog    /srv/www/example.com/logs/error.log
    CustomLog   /srv/www/example.com/logs/access.log combined
</VirtualHost>
The only site the differs is the other subdomain:

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    ServerName  reseller.example.com
    ServerAlias reseller.example.com
    DocumentRoot    /srv/www/reseller.example.com/public_html/
    ErrorLog    /srv/www/reseller.example.com/logs/error.log
    CustomLog   /srv/www/reseller.example.com/logs/access.log combined
</VirtualHost>

इसके अलावा, सुनिश्चित करें कि NameVirtualHost निम्नानुसार सेट है। उबंटू के तहत मेरे सेटअप पर आप इस फ़ाइल में उस पंक्ति को देखेंगे: /etc/apache2/ports.conf

NameVirtualHost *:80
Listen 80

0
2017-11-16 06:28