डेबियन "साइटों-उपलब्ध" और "साइटों-सक्षम" डायर का उद्देश्य


60

क्या कोई मुझे बता सकता है - संक्षेप में- इन दो निर्देशिकाओं का उद्देश्य डेबियन में क्या है?

/etc/apache2/sites-enabled
/etc/apache2/sites-available

मैं देखता हूं कि वे अलग हैं sites-available/000-defaultऔर sites-enabled/defaultदिखाते हैं कि वे समान हैं।

क्या देता है?

जवाबों:


63

साइट-उपलब्ध में आपकी प्रत्येक साइट के लिए अपाचे कॉन्फिग फाइल होती है। उदाहरण के लिए:

<VirtualHost *:80>
  ServerName site.mysite.com
  ServerAdmin my@email.com

  DirectoryIndex index.php
  DocumentRoot /home/user/public_html/site.mysite.com/public

  LogLevel warn
  ErrorLog /home/user/public_html/site.mysite.com/logs/error.log
  CustomLog /home/user/public_html/site.mysite.com/logs/access.log combined
</VirtualHost>

जब आप एक नई साइट जोड़ना चाहते हैं (उदाहरण के लिए, site.mysite.com), तो आप इसे यहाँ जोड़ें, और उपयोग करें:

a2ensite site.mysite.com

साइट को सक्षम करने के लिए। एक बार साइट को सक्षम करने के बाद, कॉन्फ़िगर फ़ाइल के लिए एक सिमिलिंक को साइटों-सक्षम निर्देशिका में रखा जाता है, यह दर्शाता है कि साइट सक्षम है।


12
यदि आप किसी साइट को निष्क्रिय करना चाहते हैं, तो आप a2dissite site.mysite.com चलाएंगे

2
a2ensiteऔर a2dissiteस्थित हैं /usr/sbinजो वर्तमान में डिफ़ॉल्ट उपयोगकर्ता पथ में शामिल नहीं हैं, इसलिए टैब पूरा होने से काम नहीं चलेगा। टाइप करने के दौरान sudo a2और टैब कुंजी दबाने लेकिन तुम दोनों की पेशकश की जाएगी a2ensiteऔर a2dissite
स्टीफन श्मिट

22

प्रणाली के यांत्रिकी से अधिक महत्वपूर्ण तर्क है ...

डेबियन दो अलग-अलग निर्देशिकाएं प्रदान करता है ताकि यदि आप अपने अपाचे कॉन्फ़िगरेशन को स्वचालित रूप से प्रबंधित कर रहे हैं, तो आप बस अपने सभी sites-availableमशीनों पर सभी vhosts ड्रॉप कर सकते हैं, और फिर व्यक्तिगत vhosts को सर्वर पर सक्षम किया जा सकता है जो वास्तव में उनकी सेवा करेंगे। इसका मतलब यह भी है कि अगर आप समस्या पैदा कर रहे हैं तो आप किसी साइट को तुरंत निष्क्रिय कर सकते हैं ( a2dissite example.com; /etc/init.d/apache2 reload)।


1
यह मूल प्रश्न का सही उत्तर है।
सिलपोल

5

उपरोक्त लोगों को जोड़ने के लिए, फ़ाइल में फ़ाइल के sites-enabledलिए एक सिमलिंक है sites-available:

ls -l /etc/apache2/sites-enabled/

यह केवल एक ही सामग्री नहीं है, यह एक ही वास्तविक फ़ाइल है!


5

महत्वपूर्ण जानकारी:

आपको केवलsites-available निर्देशिका में फ़ाइलों को संपादित करना चाहिए ।

sites-enabledनिर्देशिका के अंदर फ़ाइलों को कभी भी संपादित करें , अन्यथा आपको समस्या हो सकती है यदि आपका संपादक मेमोरी से बाहर चला जाता है या किसी भी कारण से, यह एक SIGHUP या SIGTERM प्राप्त करता है।

उदाहरण के लिए: यदि आप nanoफ़ाइल को संपादित करने के लिए उपयोग कर रहे हैं sites-enabled/defaultऔर यह मेमोरी से बाहर चला जाता है या किसी भी कारण से, यह SIGHUP या SIGTERM प्राप्त करता है, तो निर्देशिका के अंदर, nanoनामक एक आपातकालीन फ़ाइल बनाएगा । तो, निर्देशिका के अंदर एक अतिरिक्त फ़ाइल होगी । यह अपाचे या NGINX को शुरू करने से रोकेगा। यदि आपकी साइट काम कर रही थी, तो यह अब नहीं होगी। आपके पास एक कठिन समय होगा जब तक आप पता नहीं लगाते हैं, लॉग में, फ़ाइल से संबंधित कुछ और, फिर, इसे हटा दें।default.savesites-enabledsites-enableddefault.save

ऊपर के उदाहरण में, यदि आप sites-availableनिर्देशिका के अंदर फ़ाइल को संपादित कर रहे थे, तो कुछ भी बुरा नहीं हुआ होगा। फ़ाइल sites-available/default.saveबनाई गई होगी, लेकिन यह sites-availableनिर्देशिका के अंदर कोई नुकसान नहीं करेगी ।


बहुत ही रोचक! क्या कोई और इसकी पुष्टि कर सकता है?
अइयदन

यहाँ किसी ऐसे व्यक्ति का उदाहरण दिया गया है जिसे यह समस्या थी: stackoverflow.com/questions/36808705/…
Vini

ऐसा ही कुछ निम्नलिखित लिंक में हुआ। उत्तरवाहक में मेल्विन टिप्पणी देखें, साइटों को सक्षम करने में फ़ाइलों के संपादन के बारे में। stackoverflow.com/questions/26210115/…
विनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.