У який режим я повинен розгорнути програми Rails?


24

Що було б розумним і логічним каталогом, в який розгортати мої виробничі програми Rails в системі Linux?

Деякі кандидати ...

/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.

Що найменше дивовижне, найбільш нормальне, що потрібно робити тут?

(Довідкова інформація - додаток Rails - це купа серверного коду, написаного в Ruby разом із publicdir, що містить JavaScript, CSS та, можливо, трохи HTML. Режим publicвідображається на vhost Apache. Apache обробляє код Ruby через модуль називається Пасажирський або mod_rails.)


Дякую за допомогу, всі. Я думаю, я збираюся піти /opt/deployed_rails_apps. (Мені подобаються довгі назви каталогів сховищ та заповнення вкладок.) /var/...- також хороше місце, але я отримав суворе бурчання від ІТ, коли намагався розгорнути там речі. Якби це була моя власна машина, я б міг поїхати з /varабо /srv.


Ви можете побачити це інше пов'язане питання: serverfault.com/questions/29129/…
chmeee

побічне запитання, але все ще пов’язане з тим, я працював над проектом рейлів, що міститься в ~ / Документах / цитатах (каталозі), і після його розгортання через 6 місяців я здивував, що однакова структура папки також знаходиться в / var / www / html / quotes - при розгортанні рейки копіюють її у папку var? Я поняття не маю, як все це потрапило з іншого каталогу. будь-яка допомога буде вдячна
BKSpurgeon

Відповіді:


5

Я думаю / opt буде місце для такої програми . Я погоджуюся дотримуватися FHS, як це запропонував chmeee, але я не згоден, що програма Rails сама по собі є послугою.


Важко сказати, що насправді програмне забезпечення рейлів деінстальовано десь у системі (як дорогоцінний камінь або пакет), що він хоче розмістити, це структура каталогів для "служби", власне додаток, який використовує рейли, щоб щось обслуговувати.
chmeee

Я визнав, що він говорить про створений ним додаток (отже, "додаток Rails"), а не про саму Rails. У будь-якому випадку / 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оскільки це дружелюбно до Apache та Rails і є загальносистемним.


1
Веб-додатки повинні надходити в / var / www, особливо якщо вони обслуговуються через щось на зразок належного веб-сервера, наприклад Apache of Lighttpd. Тим більше, що політики SELinux будуть належним чином застосовані до програми Rails в / var / www, а не в / opt.
wzzrd

6

Ви можете дотримуватися стандарту ієрархії файлової системи (FHS) і розмістити його

/srv : Data for services provided by this system

Редагувати:

Я б не розміщував це в /opt:

/opt : Add-on application software packages

Його мета говорить:

/ opt зарезервовано для встановлення додаткових програмних пакетів програм.

Пакет, який потрібно встановити в / opt, повинен знаходити статичні файли в окремому / opt / або / opt / директорії, де є ім'я, яке описує програмний пакет і є зареєстрованим іменем LANANA постачальника.

Я не думаю, що розроблена програма - це "програмний пакет".

Обґрунтуванням /srvє

Основна мета цього уточнення полягає в тому, щоб користувачі могли знайти розташування файлів даних для певного сервісу, і таким чином, щоб сервіси, які потребують єдиного дерева для лише перегляду даних, даних, що записуються, та скриптів (наприклад, cgi-скриптів), могли бути розміщені розумно.

Я розумію, що рейкова програма - це cgi-сценарій, і її слід розміщувати /srv.


Я не був би надто фанатичним щодо того, що говорить FHS. Найголовніше - тримати свої власні пакети подалі від файлів операційної системи. І найкращі місця для цього - "/ usr / local" та "/ opt".
Андріоїд

1
Я не фанатичний, але мені подобається їхня організація файлових систем. У будь-якому випадку я погоджуюся з тим, що / usr / local та / opt добре підходять для програмних пакетів, але я не думаю, що програма rails - це програмний пакет
chmeee

1
Виходячи з того, що говорить FHS, /srvздається мені найбільш підходящим каталогом. Я використовую /srv/rails/application_name.
Teemu Leisti


0

У системі на базі debian / ubuntu такі програми зазвичай встановлюються у папці / usr / share (тобто / usr / share / ruby), оскільки вони є некомпільованими файлами (які переходитимуть у / usr / lib). Оскільки ваша програма не є стандартною програмою, ви, ймовірно, помістіть її в / usr / local / share, не даючи їй перезаписати будь-які оновлення системи.

/ opt, безумовно, також тут є можливість.


0

Я тримаю свої розклади

/home/www.example.com/application

Аргументи:

Додому міститиме всі рухомі частини одного веб-сайту. Якщо у мене буде більше веб-сайтів, я буду знати, де їх знайти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.