Acho que / opt seria o lugar para um aplicativo como este. Concordo em seguir o FHS conforme sugerido por chmeee, mas não concordo que um aplicativo Rails seja um serviço em si.
O que seria um diretório razoável e lógico no qual implantar meus aplicativos Rails de produção em um sistema Linux?
Alguns candidatos ...
/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.
Qual é a coisa menos surpreendente e mais normal a fazer aqui?
(Informações de segundo plano - um aplicativo Rails é um monte de código do lado do servidor escrito em Ruby junto com um public
dir contendo JavaScript, CSS e talvez um pouco de HTML. O public
dir é mapeado para um vache do Apache O Apache manipula o código Ruby através de um módulo chamado Passenger ou mod_rails
.)
Obrigado pela ajuda, tudo. Eu acho que vou com /opt/deployed_rails_apps
. (Eu gosto de nomes de diretórios expositivos longos e conclusão de tabulação.) /var/...
também é um bom lugar, mas eu tenho resmungões severos de I.T. quando tentei implantar coisas lá. Se fosse minha própria máquina, eu poderia ir com /var
ou /srv
.
Nas distribuições CentOS Linux (e subsequentemente RedHat), quando você instala o pacote httpd (para o Apache 2), ele cria /var/www
e espera que seus vhosts apontem para seu conteúdo da web aqui. O vhost padrão é normalmente descartado em /var/www/htdocs
, e os sites / aplicativos subseqüentes devem ser colocados em /var/www/sitename
.
O local real não deve importar muito, mas é comum ver /opt/www/sitename
, /var/www/sitename
ou simplesmente /opt/www
ou /var/www
.
Você já declarou algumas das razões pelas quais alguns dos outros locais (como /home
) não são realmente adequados para isso.
Pessoalmente, prefiro /var/www/sitename
, pois é amigável para o Apache e o Rails, e é para todo o sistema.
Você pode seguir o Padrão de hierarquia do sistema de arquivos (FHS) e colocá-lo em
/srv : Data for services provided by this system
EDITAR:
Eu não colocaria em /opt
:
/opt : Add-on application software packages
Seu propósito diz:
/opt is reserved for the installation of add-on application software packages.
A package to be installed in /opt must locate its static files in a separate /opt/ or /opt/ directory tree, where is a name that describes the software package and is the provider's LANANA registered name.
Eu não acho que uma aplicação desenvolvida seja um 'pacote de software'.
A justificativa para /srv
é
This main purpose of specifying this is so that users may find the location of the data files for particular service, and so that services which require a single tree for readonly data, writable data and scripts (such as cgi scripts) can be reasonably placed.
Eu entendo que um aplicativo rails é um script cgi e deve ser colocado em /srv
.
Eu normalmente os coloco em / opt / app_name.
No sistema baseado em debian / ubuntu tais aplicativos geralmente são instalados na pasta / usr / share (por exemplo, / usr / share / ruby), já que são arquivos não-compilados (que entram em / usr / lib). Como seu aplicativo não é um aplicativo padrão, você provavelmente o colocaria em / usr / local / share, evitando que ele seja sobregravado por qualquer atualização do sistema.
/ opt é certamente também uma possibilidade aqui.
Eu mantenho minhas implantações em
/home/www.example.com/application
Os argumentos:
A página inicial contém todas as partes móveis de um único site. Se eu tiver mais sites, saberei onde encontrá-los.