क्या मैं रेल क्षुधा में तैनात करना चाहिए?


24

क्या एक उचित और तार्किक निर्देशिका होगी जिसमें लिनक्स सिस्टम पर मेरे उत्पादन रेल एप्लिकेशन को तैनात किया जाए?

कुछ उम्मीदवार ...

/var/rails  <= There's a /var/www so this would be consistent with that 
               pattern. But I.T. guys have complained about stuff in /var 
               before.

/home/my_home_dir/rails  <= OK, not /var, but I'm not the only developer. 
                            Seems like it really ought to be a systemwide
                            location.

/home/rails  <= I don't know. That just seems weird.

/rails  <= Seems even weirder.

यहाँ क्या कम से कम आश्चर्यजनक, सबसे सामान्य बात है?

(पृष्ठभूमि की जानकारी - एक रेल एप्लिकेशन रूबी में सर्वर साइड कोड का एक समूह है publicजिसमें जावास्क्रिप्ट, सीएसएस, और शायद थोड़ा एचटीएमएल शामिल है। publicडीआईआर को अपाचे vhost पर मैप किया जाता है। अपाचे एक मॉड्यूल के माध्यम से रूबी कोड को संभालता है। यात्री या mod_rails।)


सभी को मदद के लिए धन्यवाद। मुझे लगता है कि मैं साथ जा रहा हूं /opt/deployed_rails_apps। (मुझे लंबे, एक्सपोज़ररी डायरेक्टरी के नाम और टैब पूरा करना पसंद है।) /var/...भी एक अच्छी जगह है, लेकिन मैंने आईटी से कड़ी मेहनत की है, जब मैंने वहां सामान तैनात करने की कोशिश की। अगर यह मेरी खुद की मशीन होती तो मैं /varया साथ जा सकता था /srv


आप इससे संबंधित अन्य प्रश्न देखना चाह सकते हैं: serverfault.com/questions/29129/…
chmeee

एक पक्ष का सवाल है, लेकिन अभी भी संबंधित मैं ~ / दस्तावेज़ / उद्धरण (निर्देशिका) में निहित एक रेल परियोजना पर काम कर रहा था और इसे तैनात करने के बाद, कुछ 6 महीने बाद मेरे आश्चर्य को बहुत कुछ मिला, जो समान फ़ोल्डर संरचना / var / में भी है www / html / उद्धरण - जब तैनाती करता है, तो इसे var फ़ोल्डर में कॉपी किया जाता है? मुझे नहीं पता कि यह सब अन्य निर्देशिका से कैसे मिला। किसी भी मदद की सराहना की जाएगी
BKSpurgeon

जवाबों:


5

मुझे लगता है कि / ऑप्ट इस तरह से एक आवेदन के लिए जगह होगी । मैं FHS को chmeee द्वारा सुझाई गई बातों का पालन करने के लिए सहमत हूं, लेकिन मैं इस बात से सहमत नहीं हूं कि रेल एप्लिकेशन प्रति सेवा है।


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

मैंने पहचाना कि वह अपने द्वारा बनाए गए ऐप के बारे में बात कर रहा है (इसलिए, "रेल्स ऐप"), बल्कि रेल्स के बजाय। किसी भी तरह, / srv गलत लगता है।
अर्गलाटायर

7

CentOS Linux वितरण (और बाद में RedHat) पर, जब आप httpd पैकेज (Apache 2 के लिए) स्थापित करते हैं, तो यह बनाता है /var/www, और उम्मीद करता है कि आपकी vhosts आपके वेब सामग्री की ओर इशारा करती है। डिफ़ॉल्ट vhost को आम तौर पर डंप किया जाता है /var/www/htdocs, और बाद की साइटों / ऐप्स को डाल दिया जाना चाहिए /var/www/sitename

वास्तविक स्थान ज्यादा बात नहीं करना चाहिए, लेकिन यह दिखाई देना सामान्य है /opt/www/sitename, /var/www/sitenameया बस /opt/wwwया /var/www

आप पहले से ही कुछ कारणों से कह चुके हैं कि कुछ अन्य स्थान (जैसे /home) वास्तव में इसके लिए अनुकूल नहीं हैं।

व्यक्तिगत रूप से, मैं पसंद करता हूं /var/www/sitenameक्योंकि यह अपाचे और रेल के अनुकूल है, और सिस्टम-वाइड है।


1
वेब ऐप्स को / var / www में जाना चाहिए, खासकर यदि उन्हें किसी उचित वेबसर्वर की तरह अपाचे जैसे लाइटटैप के माध्यम से परोसा जाए। और अधिक, चूंकि SELinux नीतियां ठीक से / var / www में रेल एप्लिकेशन पर लागू होंगी और न कि ऑप्ट में।
बजे

6

आप फाइलसिस्टम पदानुक्रम मानक (FHS) का पालन करना चाहते हैं और इसे इसमें रख सकते हैं

/srv : Data for services provided by this system

संपादित करें:

मैं इसमें जगह नहीं दूंगा /opt:

/opt : Add-on application software packages

यह उद्देश्य कहता है:

/ ऐड-ऑन एप्लिकेशन सॉफ़्टवेयर पैकेज की स्थापना के लिए ऑप्ट ऑप्ट किया गया है।

/ ऑप्ट में स्थापित किए जाने वाले पैकेज को अपनी स्थिर फ़ाइलों को एक अलग / ऑप्ट / / / ऑप्ट / डायरेक्ट्री ट्री में ढूंढना चाहिए, जहां एक नाम है जो सॉफ्टवेयर पैकेज का वर्णन करता है और प्रदाता का LANANA पंजीकृत नाम है।

मुझे नहीं लगता कि एक विकसित अनुप्रयोग एक 'सॉफ्टवेयर पैकेज' है।

के लिए तर्क /srvहै

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

मैं समझता हूं कि एक रेल एप एक cgi स्क्रिप्ट है और इसे अंदर रखा जाना चाहिए /srv


एफएचएस जो कहता है, मैं उसके बारे में बहुत अधिक कट्टर नहीं होगा। सबसे महत्वपूर्ण बात यह है कि अपने कस्टम पैकेज को ऑपरेटिंग सिस्टम फ़ाइलों से दूर रखें। और उसके लिए सबसे अच्छे स्थान "/ usr / स्थानीय" और "/ ऑप्ट" हैं।
एंड्रियॉइड

1
मैं कट्टर नहीं हूं, लेकिन मैं उनके फाइलसिस्टम संगठन को पसंद करता हूं। किसी भी मामले में मैं सहमत हूं कि / usr / स्थानीय और / ऑप्ट सॉफ्टवेयर पैकेज के लिए अच्छे हैं, लेकिन मुझे नहीं लगता कि एक रेल एप्लिकेशन एक सॉफ्टवेयर पैकेज है
chmeee

1
एफएचएस जो कहता है, उसके आधार पर /srvमेरे लिए सबसे उपयुक्त निर्देशिका की तरह लगता है। मैं उपयोग कर रहा हूं /srv/rails/application_name
तैमू लीस्टी

0

मैं आमतौर पर उन्हें / ऑप्ट / app_name में डालता हूं।


0

डेबियन / ubuntu आधारित प्रणाली में ऐसे एप्लिकेशन आमतौर पर / usr / शेयर फ़ोल्डर (यानी / usr / शेयर / रूबी) में स्थापित किए जाते हैं, क्योंकि वे गैर-संकलित फाइलें (जो / usr / lib में जाएंगे)। चूँकि आपका आवेदन एक मानक अनुप्रयोग नहीं है, इसलिए आप शायद इसे / usr / लोकल / शेयर में डाल देंगे, जिससे इसे अन्य सिस्टम अपडेट द्वारा अधिलेखित होने से रोका जा सके।

/ ऑप्ट निश्चित रूप से यहाँ एक संभावना भी है।


0

मैं अपनी deploys को अंदर रखता हूँ

/home/www.example.com/application

तर्क:

होम में एक ही वेबसाइट के सभी मूविंग पार्ट्स होंगे। अगर मेरे पास अधिक वेबसाइट हैं तो मुझे पता होगा कि उन्हें कहां खोजना है।

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