साइट a2ensite के लिए त्रुटि मौजूद नहीं है


275

मेरे पास है cmsplus.devके तहत /etc/apache2/sites-availableनिम्न कोड के साथ,

<VirtualHost *:80>
    ServerAdmin master@server.com
    ServerName www.cmsplus.dev
    ServerAlias cmsplus.dev

    DocumentRoot /var/www/cmsplus.dev/public

    LogLevel warn
    ErrorLog /var/www/cmsplus.dev/log/error.log
    CustomLog /var/www/cmsplus.dev/log/access.log combined
</VirtualHost>

अब जब मैं उपयोग करता हूं sudo /usr/sbin/a2ensite cmsplus.dev, मुझे त्रुटि मिल रही है,

ERROR: Site cmsplus.dev does not exist!

मेरे वेबसर्वर Apache/2.4.6 (Ubuntu)

इस समस्या को कैसे हल करें?

जवाबों:


577

.confसाइट कॉन्फ़िगरेशन फ़ाइलों में एक्सटेंशन जोड़कर समस्या को हल किया ।

अपाचे a2ensiteपरिणाम:

त्रुटि! साइट मौजूद नहीं है

संकट; यदि आपको किसी साइट का उपयोग करने में सक्षम करते समय त्रुटि मिली:

sudo a2ensite example.com

लेकिन यह लौटा:

त्रुटि: example.com मौजूद नहीं है

a2ensite केवल एक पर्ल स्क्रिप्ट है जो केवल फ़ाइल नाम समाप्त होने के साथ काम करती है .conf

इसलिए, मैं के लिए अपनी सेटिंग फ़ाइल का नाम बदलने के लिए है example.comकरने के लिए example.com.confके रूप में इस प्रकार से प्राप्त किया जा सकता है:

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

सफलता


25
अजीब! यह Ubuntu 12.04 और 12.10 में विस्तार के बिना ठीक काम करता था।
फ्लोटिंगरॉक

मेरे लिए भी वैसा ही। जैसे कि गिलहर्मे ने कहा कि अपाचे 2.conf उबंटू या अपाचे संस्करणों के बीच बदल गया है।
निकोलस ज़ोज़ोल

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

2
यह 3 जवाब क्यों है? यह करने का सही तरीका है।
निश

मैंने पहले से ही बहुत कुछ बदलने के बाद पहले ही
हार मान ली

91

आपने शायद अपने उबंटू इंस्टॉलेशन को अपडेट किया है और अपडेट में से एक में अपाचे का संस्करण 2.4.x संस्करण शामिल है

Apache 2.4.x में / etc / apache2 / साइट्स-उपलब्ध डायरेक्टरी में स्थित vhost कॉन्फ़िगरेशन फ़ाइलों में -conf एक्सटेंशन होना चाहिए।

टर्मिनल (एमवी कमांड) का उपयोग करके, अपनी सभी मौजूदा कॉन्फ़िगरेशन फ़ाइलों का नाम बदलें और उन सभी में .conf एक्सटेंशन जोड़ें।

mv /etc/apache2/sites-available/cmsplus.dev /etc/apache2/sites-available/cmsplus.dev.conf

यदि आपको "अनुमति अस्वीकृत" त्रुटि मिलती है, तो अपने टर्मिनल कमांड के सामने "sudo" जोड़ें।

आपको कॉन्फ़िगरेशन फ़ाइलों में कोई अन्य परिवर्तन करने की आवश्यकता नहीं है।

Vhost को सक्षम करें:

a2ensite cmsplus.dev.conf

और फिर अपाचे को फिर से लोड करें:

service apache2 reload

आपकी साइटें अब चलनी चाहिए।


अद्यतन: जैसा कि यहां बताया गया है , एक लिनक्स वितरण जिसे आपने स्थापित किया है, कॉन्फ़िगरेशन को केवल * .conf में शामिल किया है। इसलिए इसका Apache 2.2 या 2.4 से कोई लेना-देना नहीं है


28

एक और अच्छा तरीका है, बस फ़ाइल को संपादित करें apache2.confअंत में एक पंक्ति है

शामिल करें -Optional साइट्स-सक्षम / *

बस .confअंत में इस तरह निकालें

सम्‍मिलित साइटें सक्षम / *

और सर्वर को पुनरारंभ करें।

(मैंने इसे केवल Ubuntu 13.10 में आज़माया, जब मैंने इसे अपडेट किया।)


1
हम्म ... मैं Ubuntu 14.04 पर यह कोशिश की और यह काम नहीं किया। .confहालांकि, कॉन्फ़िगर की गई फ़ाइलों को जोड़ना ।
क्लिफ्टन लैब्रम

अजीब बात है, मुझे यह त्रुटि तब हुई जब मैंने अपने ubuntu 12.04 से 13.10 तक अपडेट किया (क्योंकि मैंने अनपेक्षित रूप से अपाचे कॉन्फिग फाइलों को प्रतिस्थापित किया था)। 14.04 अपडेट में मुझे याद आया कि मैं विकल्प नहीं देता था, और मुझे कोई परेशानी नहीं थी।
गिलहर्मे

यह वास्तव में एक अच्छा तरीका नहीं है। साइटों-सक्षम के तहत फ़ाइलें साइट-उपलब्ध के तहत संबंधित फ़ाइलों के लिए सहानुभूति हैं और बस साइट को निष्क्रिय करने के लिए हटा दिया जाना चाहिए - कि वास्तव में a2dissite a2ensite करता है जो साइट को सक्षम बनाता है।
डोकबुआ

8

मुझे बस यही समस्या थी। मैं कहता हूँ कि यह apache.conf के साथ कुछ नहीं करना है।

a2ensite बदल गया होगा - पंक्ति 532 वह रेखा है जो .conf प्रत्यय को लागू करती है:

else {
    $dir    = 'sites';
    $sffx   = '.conf';
    $reload = 'reload';
}

यदि आप इसे बदलते हैं:

else {
    $dir    = 'sites';
    #$sffx   = '.conf';
    $sffx   = '';
    $reload = 'reload';
}

... यह बिना किसी प्रत्यय के काम करेगा।

बेशक आप a2ensite स्क्रिप्ट को बदलना नहीं चाहेंगे, लेकिन conf फाइल के प्रत्यय को बदलना सही तरीका है।

यह शायद ".conf" -suffix को लागू करने का एक तरीका है।


यह प्रश्न भी देखें: askubuntu.com/questions/362682/…
cslotty

7

तो .. सबसे तेज़ तरीका है साइट का नाम बदलने का नाम ".conf" में समाप्त हो रहा है

mv /etc/apache2/sites-available/mysite /etc/apache2/sites-available/mysite.conf

a2ensite mysite.conf

पिछली टिप्पणियों पर अन्य नोट:

  • अपाचे 2.36 तक शामिल नहीं किया गया था - उपरोक्त परिवर्तन - 2.2 पर पुनरारंभ के बाद उपरोक्त परिवर्तन करना आपके सर्वर को नीचे छोड़ देगा!

  • जैसा कि वर्णित है, संस्करण 2.2 a2ensite को हैक नहीं किया जा सकता है

साथ ही, चूंकि आपकी साइट-उपलब्ध फ़ाइल वास्तव में एक कॉन्फ़िगरेशन फ़ाइल है, इसलिए इसे वैसे भी नाम दिया जाना चाहिए ..


सामान्य तौर पर सेवाओं को पुनः आरंभ नहीं करते (webservers एक प्रकार की सेवा हैं):

  • अगर वे नहीं चल रहे हैं तो लोग उन्हें नहीं पा सकते हैं! लिनक्स नहीं एमएस विंडोज सोचो ।।

सर्वर कई वर्षों तक चल सकते हैं - लाइव अपडेट, पुनः लोड कॉन्फ़िगरेशन आदि।

क्लाउड का मतलब यह नहीं है कि आपको कॉन्फ़िगरेशन फ़ाइल लोड करने के लिए पुनरारंभ करना होगा।

  • किसी सेवा का कॉन्फ़िगरेशन बदलते समय "पुनः लोड करें" का उपयोग "पुनः आरंभ" नहीं करें।

  • पुनरारंभ सेवा को रोकता है, फिर सेवा शुरू करता है - अगर आपके द्वारा कॉन्फ़िगरेशन में कोई समस्या है, तो सेवा पुनरारंभ नहीं होगी

  • पुनः लोड एक त्रुटि देगा लेकिन सेवा आपको कभी भी त्रुटि त्रुटि को ठीक करने का मौका नहीं देती है जो केवल खराब सिंटैक्स हो सकती है।

डेबियन या ubunto [इस धागे के लिए सेवा-नाम apache2 है]

service {service-name} {start} {stop} {reload} ..

अन्य ओएस के पाठक के लिए एक excersize के रूप में छोड़ दिया है।


5

.confकॉन्फ़िगरेशन फ़ाइल में जुड़ने के बाद काम किया


2

मैंने अभी Ubuntu सर्वर संस्करण को 12.04 LTS से 14.04 LTS में अपग्रेड किया है।

दरअसल, जैसा कि ऊपर कहा गया है, Apache 2.4.x के लिए .conf एक्सटेंशन उन वेबसाइटों के लिए आवश्यक है, जो साइट-उपलब्ध निर्देशिका में रहती हैं।

इस प्रश्न को पढ़ने से पहले मेरे पास यह सुराग नहीं था कि सर्वर के साथ क्या हो रहा है।

बहुत अच्छा समाधान है।

संक्षेप में मैंने टर्मिनल पर निम्नलिखित कदम उठाए हैं:

1) साइटों-सक्षम फ़ोल्डर तक पहुंचें

$ cd /etc/apache2/sites-enabled

2) क्योंकि कमांड a2dissite अपकेंद्रित फ़ाइलों के साथ काम नहीं करेगा (बिना .conf) प्रकाशित की गई पुरानी वेबसाइट को हटा दें।

$ sudo rm <my-old-website-without-.conf>

3) अपने विस्तार को जोड़ने वाली वेबसाइट vhost फ़ाइलों का नाम बदलें .conf को अंत तक

$ sudo mv /etc/apache2/sites-available/mywebsite /etc/apache2/sites-available/mywebsite.conf

4) नई और सही vhost फाइल को पुनःप्रकाशित करें

$ sudo a2ensite mywebsite.conf

5) ब्राउज़र पर वेबसाइट की जाँच करें और मज़े करें! :)


1

Ubuntu 14.04.3 और Apache 2.4.7 के साथ मेरे मामले में, समस्या यह थी कि मैंने site2.conf को site2.conf को कॉपी करने के लिए उपलब्ध कराया, और कॉपी करके, कुछ ख़ुशी हुई और मैं a2ensite site2.conf को धागे में वर्णित त्रुटि के साथ नहीं बना सका। ।

मेरे लिए समाधान, site2.conf का नाम बदलकर site2 कर दिया गया और फिर site2.conf के लिए site2 का नाम बदल दिया गया। उसके बाद मैं a2ensite site2.conf में सक्षम था।


1

मुझे लगता है कि यहाँ ऐसा नहीं है लेकिन यह किसी की मदद कर सकता है।

डबल-चेक करें आपने गलती से / etc / apache2 / sites- में सक्षम फ़ाइल नहीं बनाई। आपको वही त्रुटि मिलती है।


-2

ऐसे ही कोशिश करो ।।

NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin master@server.com
    ServerName www.cmsplus.dev
    ServerAlias cmsplus.dev

    DocumentRoot /var/www/cmsplus.dev/public

    LogLevel warn
    ErrorLog /var/www/cmsplus.dev/log/error.log
    CustomLog /var/www/cmsplus.dev/log/access.log combined
</VirtualHost>

और / etc / मेजबान में प्रविष्टि जोड़ें

127.0.0.1 www.cmsplus.dev

फिर से शुरू करो ..


अब यह मुझे It worksसेटिंग्स के बजाय डिफ़ॉल्ट पेज दे रहा है ।
देवो

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

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