В какую директорию мне следует развернуть приложения 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 вместе с директорией, publicсодержащей JavaScript, CSS и, возможно, небольшой HTML. Директория publicотображается на Apache vhost. Apache обрабатывает код Ruby через модуль называется Пассажир или mod_rails.)


Спасибо за помощь, все. Я думаю, что я пойду с /opt/deployed_rails_apps. (Мне нравятся длинные, пояснительные имена каталогов и завершение табуляции.) /var/...Это также хорошее место, но я получил суровое ворчание от ИТ, когда пытался развернуть что-то там. Если бы это была моя собственная машина, я мог бы пойти с /varили /srv.

Agvorth
источник
Возможно, вы захотите увидеть этот другой связанный вопрос: serverfault.com/questions/29129/…
chmeee
дополнительный вопрос, но все еще связанный, я работал над проектом rails, содержащимся в каталоге ~ / Documents / quotes (каталог), и после его развертывания обнаружил, что к моему большому удивлению спустя 6 месяцев, что идентичная структура папок также находится в / var / www / html / quotes - при развертывании rails копирует его в папку var? Я понятия не имею, как все это получилось из другого каталога. любая помощь будет оценена
BKSpurgeon

Ответы:

5

Я думаю, что / opt будет местом для такого приложения . Я согласен с тем, чтобы следовать FHS, как предложено chmeee, но я не согласен с тем, что приложение Rails является сервисом как таковым.

Argalatyr
источник
Трудно сказать, на самом деле программное обеспечение rails не находится где-то в системе (в виде гема или пакета), он хочет разместить структуру каталогов для «сервиса», реального приложения, которое использует 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 провайдера.

Я не думаю, что разработанное приложение - это «программный пакет».

Обоснование /srvIS

Эта основная цель определения этого заключается в том, чтобы пользователи могли находить местоположение файлов данных для конкретной службы, и чтобы разумно размещать службы, которым требуется единственное дерево для данных только для чтения, записываемых данных и сценариев (таких как сценарии cgi).

Я понимаю, что приложение rails является сценарием cgi и должно быть размещено в /srv.

chmeee
источник
Я не был бы слишком фанатичен в отношении того, что говорит FHS. Самое главное, чтобы ваши пользовательские пакеты не попадали в файлы операционной системы. И лучшие места для этого - "/ usr / local" и "/ opt".
Андриоид
1
Я не фанатик, но мне нравится организация их файловой системы. В любом случае я согласен с тем, что / usr / local и / opt хороши для пакетов программного обеспечения, но я не думаю, что приложение rails - это пакет программного обеспечения
chmeee,
1
Судя по тому, что говорит FHS, /srvмне кажется, что это самый подходящий каталог. Я использую /srv/rails/application_name.
Теему Лейсти
0

Я обычно помещаю их в / opt / app_name.

поля
источник
0

В системе, основанной на Debian / Ubuntu, такие приложения обычно устанавливаются в папку / usr / share (то есть / usr / share / ruby), так как они являются некомпилированными файлами (которые будут помещаться в / usr / lib). Поскольку ваше приложение не является стандартным приложением, вы, вероятно, поместите его в / usr / local / share, чтобы оно не было перезаписано какими-либо обновлениями системы.

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

txwikinger
источник
0

Я держу свои развертывания в

/home/www.example.com/application

Аргументы:

Дом будет содержать все движущиеся части одного сайта. Если у меня будет больше сайтов, я буду знать, где их найти.

Ивайло Бардаров
источник