В какой каталог следует развертывать приложения Rails?

В какой каталог следует развертывать приложения Rails?

Какой каталог будет разумным и логичным для развертывания моих производственных приложений 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. Apache обрабатывает код Ruby через модуль, называемый Passenger или mod_rails.)


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

решение1

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

решение2

Вы можете следоватьСтандарт иерархии файловой системы (FHS)и поместите его в

/srv : Data for services provided by this system

РЕДАКТИРОВАТЬ:

Я бы не поместил его в /opt:

/opt : Add-on application software packages

Его цель гласит:

/opt зарезервирован для установки дополнительных пакетов прикладного программного обеспечения.

Пакет, устанавливаемый в /opt, должен размещать свои статические файлы в отдельном дереве каталогов /opt/ или /opt/, где — имя, описывающее пакет программного обеспечения, а — зарегистрированное имя поставщика LANANA.

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

Обоснованием /srvявляется

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

Я понимаю, что приложение rails — это cgi-скрипт и его следует поместить в /srv.

решение3

В дистрибутивах CentOS Linux (и впоследствии RedHat) при установке пакета httpd (для Apache 2) он создает /var/www, и ожидает, что ваши vhosts указывают на ваш веб-контент здесь. Виртуальный хост по умолчанию обычно выгружается в /var/www/htdocs, а последующие сайты/приложения следует помещать в /var/www/sitename.

Фактическое местоположение не имеет большого значения, но часто можно увидеть /opt/www/sitename, /var/www/sitename, или просто /opt/wwwили /var/www.

Вы уже назвали несколько причин, по которым некоторые другие места (например, /home) не совсем подходят для этого.

Лично я предпочитаю этот вариант, /var/www/sitenameпоскольку он дружелюбен к Apache и Rails и действует на уровне всей системы.

решение4

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

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

Связанный контент