वेबसाइट की सामग्री को संग्रहीत करने के लिए अनुशंसित निर्देशिका क्या है?


21

जब मैंने पहली बार वेब के लिए प्रोग्रामिंग शुरू की थी और मैं एक नई परियोजना बनाना चाहता था जिसमें मुझे हमेशा एक निर्देशिका बनाने के लिए सिखाया जाता था /var/www/। हालाँकि बहुत सारे ट्यूटोरियल्स में मैंने पढ़ा है कि लोग डायरेक्टरी बनाते हैं /home/username/

मुझे इसे लगाने का विचार पसंद नहीं आया /home/username/

क्या कोई सही जगह है या नहीं और फ़ाइल सिस्टम पर कुछ क्षेत्रों में रखने के क्या फायदे / नुकसान हैं?


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

कोई "सर्वश्रेष्ठ" निर्देशिका नहीं है। यह पूरी तरह से आपका प्रतिसाद है क्योंकि फ़ाइलों का फ़ाइकलीक स्थान मायने नहीं रखता है।
रामहाउंड

जवाबों:


36

कोई "सर्वश्रेष्ठ" निर्देशिका नहीं है। और जब लोग तर्क दे सकते हैं कि यह प्रश्न व्यक्तिपरक है, या यह कि फाइलों की वास्तविक नियुक्ति कोई मायने नहीं रखती है - और वे बाद के बारे में सही हैं - यूनिसेक्स जैसी प्रणालियों में क्या रखा जाए, इस पर मानकीकृत सिफारिशें हैं

फ़ाइल-सिस्टम अनुक्रम स्टैंडर्ड इस और आप निम्नलिखित प्रस्तावों को परिभाषित करता है:

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

  • /srv- इस निर्देशिका में वह डेटा होना चाहिए जो सिस्टम द्वारा दिया गया है। यह आमतौर पर वह जगह है जो आप चाहते हैं। एफएचएस बताते हैं:

    इसे निर्दिष्ट करने का मुख्य उद्देश्य यह है कि उपयोगकर्ता विशेष सेवा के लिए डेटा for लेस के स्थान को nd कर सकते हैं, और इसलिए कि जिन सेवाओं के लिए आसानी से डेटा, लिखने योग्य डेटा और स्क्रिप्ट (जैसे cgi स्क्रिप्ट) के लिए एक ही पेड़ की आवश्यकता होती है, उन्हें यथोचित रूप से रखा जा सकता है। डेटा जो केवल एक विशिष्ट should सी उपयोगकर्ता के लिए रुचि रखता है, उस उपयोगकर्ता की होम निर्देशिका में जाना चाहिए। (...)

    के तहत डेटा की संरचना के लिए एक विधि /srvप्रोटोकॉल द्वारा है, जैसे। ftp, rsync, www, औरcvs

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

  • /homeऐसी फाइलें होती हैं जो वास्तव में सिर्फ एक उपयोगकर्ता की होनी चाहिए। उदाहरण के लिए अपाचे की अनुमति देता है userdirs ताकि आप के माध्यम से एक उपयोगकर्ता के वेब फ़ाइलों तक पहुँच सकते हैं, http://example.com/~usernameऔर वे से प्रदान किए जाते रहे हैं public_htmlउपयोगकर्ता के घर में निर्देशिका।

    यदि आप एक सर्वर का उपयोग करते हैं जो कई लोगों के बीच साझा किया जाता है, और आप हर किसी को अपनी स्क्रिप्ट होस्ट करने की अनुमति देना चाहते हैं, तो यह वह जगह है जहाँ उन्हें जाना चाहिए। याद रखें कि उपयोगकर्ता द्वारा निर्देशिका को केवल लिखने योग्य बनाने के लिए।

संक्षेप में /srv/wwwऔर /var/wwwनिर्देशिकाएं हैं जिन्हें आपको किसी भी वेब परियोजना के लिए उपनिर्देशिका बनाना चाहिए जिसे आप होस्ट करना चाहते हैं। फिर आप कुछ उपयोगकर्ताओं या उपयोगकर्ता समूहों को उन्हें लिखने की अनुमति देने के लिए इन निर्देशिकाओं पर विभिन्न अनुमतियों को परिभाषित कर सकते हैं। यदि आपके पास एक समय में एक उपयोगकर्ता के लिए परियोजनाएं हैं, तो उपयोग करें /home


3
http://example.com/~usernameआम तौर पर इंगित नहीं करता है करने के लिए /home/username/, लेकिन करने के लिए /home/username/public_html/
कोरोबा

हाँ, धन्यवाद, जिसे स्पष्टता के लिए जोड़ा जाना चाहिए था। किया हुआ।
13

उपयोग करने के कई वर्षों के बाद /var/wwwयह परिवर्तन का समय है!
सिटिलज

इसके अलावा, wwwमुझे एक उपडोमेन की तरह लगता है।
सिटिलाज

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

4

अच्छी तरह से आप फ़ाइलों को कहीं भी रख सकते हैं जब तक कि चीजें उन्हें ठीक से एक्सेस कर सकें, हालांकि किसी में बाद में आने पर अव्यवस्थित फाइल सिस्टम एक सिरदर्द हैं।

/srv सबसे तार्किक प्लस है यदि आप फाइलसिस्टम पदानुक्रम मानक का पालन करते हैं तो यह यहां जाएगा।

यदि आप कई डोमेन करते हैं तो आप /srv/domain1 /srv/domain2आदि कर सकते हैं तो वहां से बाहर सबफ़ोल्डर करें/ftp /www /tftp /logs /etc.etc.etc

मेरे लिए जो एक बहुत ही ठोस संरचना महसूस करता है और आसानी से नियंत्रित होता है

लेकिन एक प्रशासक के रूप में आप अपनी इच्छानुसार स्वच्छ या गन्दा कर सकते हैं।


1

ठीक है आसान त्वरित उत्तर।

यदि सिस्टम पर आपकी वेब फ़ाइलें केवल लिनक्स सिस्टम पर वन उपयोगकर्ता द्वारा एक्सेस की जाएंगी। उपयोगकर्ता की होम निर्देशिका का उपयोग करें ( ~/)।

यदि सिस्टम पर आपकी वेब फ़ाइलें लिनक्स सिस्टम पर MULTIPLE उपयोगकर्ताओं द्वारा एक्सेस की जाएंगी। का उपयोग करें /srv/

यह ठीक वैसा ही है जैसे http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM राज्य।

यहाँ बोली है:

/ srv में साइट-विशिष्ट डेटा होता है जो इस सिस्टम द्वारा दिया जाता है।

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

बोनस: www? एफ़टीपी? प्रोटोकॉल द्वारा व्यवस्थित करें? है ना?

जैसा कि यहाँ कहा गया है http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM

  • यदि आपकी वेबसाइट केवल सिस्टम पर केवल एक उपयोगकर्ता द्वारा एक्सेस की जाती है और केवल ब्राउज़र (http प्रोटोकॉल) के माध्यम से तब: ~/http/your-website-directory/या (https प्रोटोकॉल) तब:~/https/your-website-directory/
  • यदि आपकी वेबसाइट केवल सिस्टम पर एक उपयोगकर्ता द्वारा एक्सेस की गई है और केवल ब्राउज़र के माध्यम से नहीं बल्कि कई प्रोटोकॉल (ig http और tcp और ...) के माध्यम से एक्सेस की जाती है: ~/your-website-directory/
  • यदि आपकी वेबसाइट MULTIPLE उपयोगकर्ताओं द्वारा सिस्टम पर और केवल ब्राउज़र (http प्रोटोकॉल) के माध्यम से एक्सेस की जाती है: /srv/http/your-website-directory/या ((https)):/srv/https/your-website-directory/
  • यदि आपकी वेबसाइट MULTIPLE उपयोगकर्ताओं द्वारा सिस्टम पर और केवल ब्राउज़र के माध्यम से नहीं बल्कि कई प्रोटोकॉल (ig http और ftp AND ...) के माध्यम से एक्सेस की जाती है: /srv/your-website-directory/

हुह क्यों नहीं www? यह अपाचे समय से विरासत है। www निर्दिष्ट नहीं करता है कि कौन से प्रोटोकॉल का उपयोग किया जा रहा है। डेबियन अभी भी आज के रूप में इसका उपयोग करता है, जबकि उदाहरण के लिए आर्क linux / srv / http का उपयोग करता है।


0

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

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

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.