अपाचे 14.04 पर अपाचे आभासी मेजबान क्यों काम नहीं कर रहा है?


23

मैंने Apache 2.4 को Ubuntu 14.04 पर स्थापित किया और यह http://localhost/पते द्वारा ठीक काम कर रहा था । लेकिन जब मैंने एक नया वर्चुअल होस्ट जोड़ने का प्रयास किया, उदाहरण के लिए http://bow.locऔर अपाचे को पुनरारंभ करने के लिए , नया पता उपलब्ध नहीं था http://bow.locऔर उपलब्ध नहीं था http://localhost

मेरा विन्यास है:

<VirtualHost *:80>
    ServerName www.bow.loc
    ServerAlias bow.loc
    DocumentRoot /var/www/html/bow/web

    <Directory /var/www/html/bow>
        AllowOverride All
        Options FollowSymLinks MultiViews
        Order allow,deny
        Allow from all
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteRule ^(.*)$ /app.php [QSA,L]
        </IfModule>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

मैं अपनी साइट कैसे प्राप्त कर सकता हूं http://bow.loc?


संबंधित: askubuntu.com/a/362992/8698
Dan

मेरा जवाब यहां देखें । इसी तरह की समस्या है और यह सिस्टम DNS विन्यास के साथ समस्या है।
जमरकेली

जवाबों:


29

Apache 2.4 के बाद से, प्रत्येक वर्चुअल होस्ट फ़ाइल में .conf एक्सटेंशन होना चाहिए।

.Conf एक्सटेंशन को शामिल करने के लिए आप प्रत्येक वर्चुअल होस्ट फ़ाइल का नाम बदल सकते हैं:

mv /etc/apache2/sites-available/example.com /etc/apache2/sites-available/example.com.conf

वर्चुअल होस्ट जोड़ने के लिए a2ensite कमांड का उपयोग करें:

a2ensite example.com.conf

और फिर से लोड करें:

service apache2 reload

धन्यवाद! और इस क्रिया के बाद मुझे मैन्युअल रूप से /etc/hostsफ़ाइल को संशोधित करने और मेजबानों को जोड़ने की आवश्यकता नहीं है? क्या अपाचे अपने आप नए होस्ट लिखेगा?
विक्टर बोचरस्की

अपाचे स्वचालित रूप से नए होस्ट नहीं लिखता है, आपको इसे मैन्युअल रूप से लिखना चाहिए। CMIIW
अरी Pratomo

इसलिए, मेरा /etc/hosts
कॉन्फिगर

अन्य तरीका है apache2.conf को संशोधित करना और "इनकॉर्पोरेट साइट्स-इनेबल / *" डायरेक्टिव से ".conf" एक्सटेंशन को हटाना। मैं फ़ाइल नाम के रूप में वेबसाइट डोमेन का उपयोग करता हूं, इसलिए मैं अतिरिक्त ".conf" आवश्यकता को नापसंद करता हूं।
लेप

17

मैं इसमें होस्ट जोड़ना भूल गया /etc/hosts:

127.0.0.1   localhost
127.0.0.1   bow.loc

मैंने सोचा कि अपाचे यह स्वचालित रूप से करता है।


मुझे सर्वर पर किसी भी समय ऐसा नहीं करना पड़ा है। मैं इसे हर समय परीक्षण के प्रयोजनों के लिए क्लाइंट से करता हूं। क्या आप स्पष्ट कर सकते हैं कि आप यहाँ क्या कह रहे हैं?
झिलमिलाहट

@flickerfly तुम क्या मतलब है? मैंने अपने लोकल मशीन से अपने वर्चुअलहोस्टेस को स्थापित Apacheसर्वर से संभालने के लिए बनाया
विक्टर बोकार्स्की

मैं इसे भी जोड़ना भूल गया! : पी
ऋषि कुलश्रेष्ठ 14

अरे, मैं इस पर हमारा एक बर्बाद डेबियन 8 VM! धन्यवाद!!!
लूकाफेरियो

@lucaferrario हाहा, मुझे या तो। सरल कीड़े प्रकट करना मुश्किल है;) आपका स्वागत है!
विक्टर बोकार्स्की

3

खैर, मैं इन सभी समाधानों की पेशकश कर रहा हूं..लेकिन दुख की बात है कि कुछ भी काम नहीं किया! काश मैं संपादित करता

    /etc/hosts

प्रवेश करने के लिए

    127.0.1.1 example.com test.com

और यह काम किया !!

(क्षमा करें, अगर मैं तकनीकी रूप से ज्यादा बात नहीं कर रहा हूँ!)


1

मैंने एक अजगर स्क्रिप्ट लिखी है जो अपाचे वर्चुअल होस्ट निर्माण चरणों को स्वचालित करेगी ... इस वीडियो में बताया गया है कि, कैसेट पर डाउनलोड / कोड


-3
Options FollowSymLinks MultiViews

चार '+' की जरूरत है:

Order allow,deny
Allow from all

अब = सभी की आवश्यकता है


कृपया समझाएं, यह कहां रखा जाए और यह क्या करता है। केवल कमांड या कॉन्फ़िगरेशन आर्टिफैक्ट्स पोस्ट न करें। देखिए मैं एक अच्छा उत्तर कैसे लिखूं?
डेविड फ़ॉस्टर

1
यदि आप एक को बाहर करने के लिए केवल एक - का उपयोग कर रहे हैं तो आपको विभिन्न विकल्पों से पहले + या - लगाना होगा। अन्यथा, वे जाने के लिए अच्छे हैं। आवश्यक सभी स्वीकृत Apache 2.4 के लिए है। आदेश, अनुमति रेखाएँ २.२ वाक्यविन्यास हैं।
झिलमिलाहट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.