Какой каталог будет разумным и логичным для развертывания моих производственных приложений 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
Аргументы:
Домашняя страница будет содержать все движущиеся части единого веб-сайта. Если у меня будет больше сайтов, я буду знать, где их найти.