Назад | Перейти на главную страницу

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


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

В дистрибутивах 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 и является общесистемным.

Вы можете следовать Стандарт иерархии файловой системы (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.

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

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

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

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

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

/home/www.example.com/application

Аргументы:

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