वेबसाइटों को अनुशंसित उपयोग के अनुसार / var / या / usr / में रहना चाहिए?


62

लिनक्स निर्देशिका संरचना पर एक गाइड के अनुसार , /usr/एप्लिकेशन फ़ाइलों के लिए है, और /var/उन फ़ाइलों के लिए है जो बदल जाते हैं (मुझे लगता है कि इसका मतलब है "फाइलें जो अनुप्रयोगों से संबंधित हैं")। क्या ये सही है?

यदि यह मामला है तो मैं या तो उपयोग करने के बीच थोड़ा फटा हुआ हूं। एक वेबसाइट एक एप्लिकेशन है (यदि यह गतिशील है, तो बोलने के लिए), लेकिन अन्य मामलों में यह अपाचे द्वारा उपयोग की जाने वाली फाइलों का एक संग्रह है।

डिफ़ॉल्ट www dir में रहता है /var/www/, तो क्या हमें /var/websites/(या कुछ इसी तरह) का उपयोग करके सूट का पालन करना चाहिए , या /usr/websites/वे आवेदन कर सकते हैं?

यह एक बहुत ही तुच्छ प्रश्न है, लेकिन यह मुझे फिर भी परेशान कर रहा है। हमारे मामले के लिए, मैं /usr/webअपनी वेबसाइट के सभी अनुप्रयोगों के बाद से या ऐसा कुछ कर रहा हूं ।

अपडेट करें:

यह हमारी कंपनी की वेबसाइटों के लिए है; यह एक साझा होस्टिंग सर्वर नहीं है, इसलिए हमें उन्हें /home/या उस तरह कुछ भी अलग करने के बारे में चिंता करने की आवश्यकता नहीं है।


10
मुझे नहीं लगता कि सवाल यह है कि तुच्छ; यह वास्तव में एक अच्छा नहीं है। दिलचस्प।
ऐरन रोटेवेल

जवाबों:


63

एफएचएस के अनुसार , /usrइसके लिए है shareable, read-only data- जहां आप वेबसाइट डालना चाहते हैं। यह वह जगह है जहां आपको अपना कोड डालना चाहिए (उदाहरण के लिए फेडोरा वर्डप्रेस के लिए ऐसा करता है)। फेडोरा के लिए वेब एसेट्स पैकेजिंग गाइड भी देखें ।

/var"वैरिएबल डेटा फ़ाइल्स है। इसमें स्पूल डायरेक्ट्रीज़ और फ़ाइल्स, एडमिनिस्ट्रेटिव और लॉगिंग डेटा और ट्रांसिएंट और अस्थायी फ़ाइल्स शामिल हैं।" - बेहतर है, लेकिन अभी भी काफी सही नहीं है - लेकिन बहुत सारे सिस्टम का उपयोग करेंगे /var/www, इसलिए भले ही आप इसे गलत तरीके से डाल दें, आप अच्छी कंपनी में हैं।

/srv"साइट-विशिष्ट डेटा के लिए है जो इस सिस्टम द्वारा दिया जाता है।" - जो एक अच्छे मैच की तरह लगता है, लेकिन आम की तुलना में बहुत कम है /var/www

साइट फ़ाइलों को रखने के लिए अन्य सामान्य स्थान के अंतर्गत है /home- एक विशेष उपयोगकर्ता को बुलाया websiteया ऐसा करके, फिर उस उपयोगकर्ता के होमडायर (जैसे, /home/website) के अंदर फ़ाइलों को रखकर ।


4
आह, मेरे काम का उपयोग करता है /srv- जैसा कि मैंने पहले कभी नहीं देखा था, मैंने सोचा कि यह उनके द्वारा बनाया गया था। क्या यह एक Redhat / CentOS बात है?
निक बोल्टन

12
डिफ़ॉल्ट केवल /var/wwwइसलिए सेट किया जाता है क्योंकि वितरण को छूने की अनुमति नहीं है /srv; यह सिस्टम व्यवस्थापक को कॉन्फ़िगर करने के लिए है। तो, इसीलिए यह "बहुत कम आम" है और सही भी है।
माइकल हैम्पटन

28

फाइलसिस्टम पदानुक्रम मानक ( विकिपीडिया ) पर एक नज़र डालें । मैं स्वयं / srv / web / $ डोमेन / {htdocs, लॉग, cgi-bin, ...} का उपयोग करता हूं।


3
मैं इसे इस तरह से भी करता हूं, लेकिन "www" के बजाय मैं हमेशा सेवा नाम "httpd" का उपयोग करता हूं। इसलिए मेरे पास / srv / httpd / $ डोमेन ... या / srv / smbd / sharename ... इस तरह यह देखना आसान है कि कौन सी सेवा फ़ाइलों की सेवा कर रही है। जैसे कुछ सिस्टम पर हमारे पास / srv / nginx / $ डोमेन है
Raffael Luthiger

9

वेबसाइटों को उपयोगकर्ताओं के घर निर्देशिकाओं में रहना चाहिए। वे उपयोगकर्ता डेटा हैं, उन्हें एक-उपयोगकर्ता-प्रति-साइट द्वारा अलग किया जाना चाहिए, और डायनामिक सामग्री को फिर से एक अलग उपयोगकर्ता के रूप में चलना चाहिए, फ़ाइलों के साथ जो डायनामिक सामग्री को पढ़ने और संशोधित करने के लिए उपयुक्त अनुमतियों को संशोधित करने की आवश्यकता है।

अपडेट करें:

सिर्फ इसलिए कि यह एक साझा होस्टिंग सर्वर नहीं है, इसका मतलब यह नहीं है कि आपको अच्छी सुरक्षा प्रथाओं में संलग्न नहीं होना चाहिए और स्वतंत्र भूमिकाओं को अपने स्वयं के सुरक्षा क्षेत्रों में अलग करना चाहिए।


7

निश्चित गाइड फाइलसिस्टम पदानुक्रम मानक है जो कहता है कि /srvउचित स्थान है।


2
मैं इसे इस तरह से नहीं पढ़ता - या कम से कम, मैं इसे इस बिंदु पर अस्पष्ट होने के रूप में पढ़ता हूं। अधिकांश वेबसाइटों को केवल सेवा नहीं दी जाती है by this system, वे सिस्टम के पूरे समूह द्वारा परोसी जाती हैं; और शुरू होने वाले दो वाक्य This setup will differ from host to host.बताते हैं कि यह कई सर्वरों में साझा की गई फ़ाइलों के लिए जगह नहीं है। यह एक काफी संभावित जगह है - हालांकि निश्चित रूप से अधिक उपयुक्त है /usr, और यकीनन इससे बेहतर है/var
जेम्स पोली

1
मुझे नहीं लगता कि एफएचएस बिल्कुल निश्चित है। पुन: (विकिपीडिया से): अधिकांश लिनक्स वितरण FHS का अनुसरण करते हैं और FHS अनुपालन को बनाए रखने के लिए इसे अपनी नीति घोषित करते हैं। हालांकि, नि: शुल्क मानक समूह के सदस्यों द्वारा विकसित किए गए वितरण सहित विशाल बहुमत (2009 के अनुसार), प्रस्तावित मानक का पूरी तरह से पालन नहीं करते हैं।
माइकल ग्रेफ

6
मानकों के बारे में यह अच्छी बात है - इसमें से चुनने के लिए बहुत सारे हैं! :)
जेम्स पोली

3

वे डिस्क पर रहते हैं, जहां बहुत कम मामला है। यह वह जगह है जहाँ आप उन्हें चाहते हैं।

मेरे पास अपनी सभी मशीनों पर / www से एक सिमिलिंक है जहां वे वास्तव में रहते हैं, इसलिए मुझे कभी भी मशीन से मशीन पर आश्चर्य नहीं करना चाहिए। कुछ पुरानी मशीनों में उपयोगकर्ता डिस्क के लिए / u0 और / u1 है, और मैं वहां वेब चीजों को रखता हूं। कुछ सीधे / घर पर चढ़े हुए हैं, इसलिए वे वहां जाते हैं, लेकिन / www हमेशा सही जगह की ओर इशारा करते हैं।

मैं भी / usr में और न ही / var में कोई कॉन्फ़िगरेशन नहीं डालता। यह / स्थानीय (जो, आपने यह अनुमान लगाया है, यह आमतौर पर / u0 या / u1 पर कहीं एक सिमलिंक है)। इससे चीजों का बैकअप लेना आसान हो जाता है। मैं अभी उपयोगकर्ता डिस्क का बैकअप लेता हूं।

बेशक, मेरे पास अपनी पसंद के ओएस, नेटबीएसडी के लिए एक मास्टर डिस्ट्रीब्यूशन साइट है। मैं इस प्रणाली को बनाता हूं जैसे मैं इसे इस मुख्य मशीन (वास्तव में एक एक्सईएन उदाहरण) और rsync / usr के आसपास चाहता हूं। मेरे जीवन को आसान बनाता है।


6
यह ठीक है अगर आप एक-व्यक्ति ऑपरेशन, या शायद एक छोटी सी टीम भी हैं जो एक साथ मिलकर काम करते हैं और एक-दूसरे के काम से परिचित हैं - ऐसा करने का 'सही' तरीका सीखना संभवतः ऐसा करने में अधिक समय लगेगा। यह। यदि आपके पास एक बड़ा ऑपरेशन है और अक्सर नए लोगों को ऑन-बोर्ड ला रहे हैं, तो उन्हें एक लेआउट के साथ गति प्राप्त करने के लिए इस तरह से बहुत समय लगने वाला है - एफएचएस के साथ चिपके रहना (या कम से कम, करीब) आप टीम में लाने वाले हर नए व्यक्ति के साथ समय बचाने के लिए जा रहे हैं।
जेम्स पोली

5
जब आप 8 अलग-अलग ओएस का उपयोग करते हैं, तो इन-हाउस-टू-इट-इट-इट-ही-वे की तुलना में इन-हाउस मानकों को सीखना आसान होता है।
माइकल ग्रेफ

1
@ जेम्स पॉली को एक नया किराया "हम सामान डालते हैं" बताने में कितना समय लगता है /path/we/chose?
सिजयोज

@ceejayoz यदि आपके पास "सामान" की दो से अधिक श्रेणियां हैं, तो उन्हें "हम FHS का अनुसरण करना" बताना बहुत सरल है, भले ही इसके लिए "सामान" की कुछ श्रेणियों के लिए कुछ अतिरिक्त विवरणों की आवश्यकता हो।
ट्रिपल जू

3

अपाचे वेब सर्वर के तहत / var / www / के तहत डिफ़ॉल्ट वेबसाइट है, लेकिन यह अन्य वेबसाइटों को / srv / के तहत रखने का सुझाव दे रहा है

मैंने इसे Ubuntu Server 14.04 LTS पर देखा। इसकी डिफ़ॉल्ट apache2.conf फ़ाइल में टिप्पणी ब्लॉक है:

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>

2

मेरे अनुसार आपको कभी भी और किसी भी इंटरनेट सेवा को सामान्य सिस्टम ज़ोन पर नहीं रखना चाहिए।

आपकी इंटरनेट सेवाएँ (Apache / Tomcat / SSH आदि) एक सामने का दरवाजा है, यदि आप उन सेवाओं को अपने सिस्टम ज़ोन में रखते हैं तो आप संभावित रूप से कुछ हमलों की चपेट में आ जाएंगे।

यदि आपने अपनी अलग-अलग सेवाओं को एक सुरक्षित सैंडबॉक्स ज़ोन में दूसरे टुकड़ी विभाजन की तरह रखा है।

यहाँ संरचना का एक उदाहरण है जिसका आप उपयोग कर सकते हैं:

/ --> Root System --> On SDA1 --> Root and System security operator access only
 |
 | -->/usr /etc /var etc.

/SRV --> Web Root --> On SDB1 --> Web users access with minimal rights access.
 |
 |-->/srv/bin & /srv/dta
      |
      |-->/srv/bin/apache (or any other APPLICATION Binaries)
      |-->/srv/dta/SQL (or any other APPLICATION Datas like a 
                        database or web PHP files etc.)

1
क्या आप "कॉमन सिस्टम ज़ोन" पर विस्तार कर सकते हैं? यह एक शब्द नहीं है जिसे मैंने पहले सुना है और मुझे यकीन नहीं है कि आपका क्या मतलब है। /srv/binएफएचएस का उल्लंघन करने के लिए लगता है, जो बताता है कि /srvडेटा के लिए है, न कि बायनेरिज़
जेम्स पोली

अच्छी तरह से सामान्य प्रणाली क्षेत्र का अर्थ है, ओएस का वह हिस्सा, जहां सभी सिस्टम घटक जैसे स्टोर, खाता, पासवर्ड, प्रशासक बायनेरी और लाइब्रेरी हैं। मुझे पता है कि मेरा इंस्टालेशन पूरी तरह से FHS का सम्मान नहीं करता है लेकिन मैं OS को दो भाग में पूर्ण रूप से विभाजित कर सकता हूं। 1 ° / - वह सिस्टम जो काफी हद तक ठीक है (अपडेट और एडमिनिस्ट्रेशन टूल इंस्टॉलेशन को छोड़कर) 2 ° / - एप्लिकेशन, डेटा और यूएसर्स होमलैंड। इस तरह से, यदि आपको अपने सिस्टम या डेटा के साथ कुछ परेशानी हुई, तो आप सभी डेटा नहीं खोएंगे।
डॉ मैं

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