Em qual diretório devo implantar aplicativos Rails?

Em qual diretório devo implantar aplicativos Rails?

Qual seria um diretório razoável e lógico para 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 se fazer aqui?

(Informações básicas - um aplicativo Rails é um monte de código do lado do servidor escrito em Ruby junto com um publicdiretório contendo JavaScript, CSS e talvez um pouco de HTML. O publicdiretório é mapeado para um vhost Apache. O Apache lida com o código Ruby por meio de um módulo chamado Passageiro ou mod_rails.)


Obrigado pela ajuda a todos. Acho que vou com /opt/deployed_rails_apps. (Gosto de nomes de diretórios longos e expositivos e de preenchimento de guias.) /var/...também é um bom lugar, mas recebi reclamações severas da TI quando tentei implantar coisas lá. Se fosse minha própria máquina, eu poderia usar /varou /srv.

Responder1

Eu penso/optarseria o lugar para umaplicativoassim. Concordo em seguir o FHS sugerido por chmeee, mas não concordo que um aplicativo Rails seja um serviço em si.

Responder2

Você pode querer seguir oPadrão de hierarquia do sistema de arquivos (FHS)e coloque-o em

/srv : Data for services provided by this system

EDITAR:

Eu não colocaria isso em /opt:

/opt : Add-on application software packages

Seu propósito diz:

/opt é reservado para a instalação de pacotes de software de aplicativos complementares.

Um pacote a ser instalado em /opt deve localizar seus arquivos estáticos em uma árvore de diretórios /opt/ ou /opt/ separada, onde é um nome que descreve o pacote de software e é o nome registrado LANANA do provedor.

Não creio que um aplicativo desenvolvido seja um 'pacote de software'.

A justificativa /srvé

O objetivo principal de especificar isso é para que os usuários possam encontrar a localização dos arquivos de dados para um serviço específico e para que os serviços que exigem uma única árvore para dados somente leitura, dados graváveis ​​e scripts (como scripts cgi) possam ser razoavelmente colocados.

Entendo que um aplicativo Rails é um script cgi e deve ser colocado no arquivo /srv.

Responder3

Nas distribuições CentOS Linux (e posteriormente RedHat), quando você instala o pacote httpd (para Apache 2), ele cria /var/wwwe espera que seus vhosts apontem para seu conteúdo da web aqui. O vhost padrão normalmente é despejado em /var/www/htdocs, e sites/aplicativos subsequentes devem ser colocados em /var/www/sitename.

A localização real não deve importar muito, mas é comum ver /opt/www/sitename, /var/www/sitename, ou simplesmente /opt/wwwou /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/sitenameporque é amigável para Apache e Rails e abrange todo o sistema.

Responder4

Em sistemas baseados em Debian/ubuntu, tais aplicativos são geralmente instalados na pasta /usr/share (ou seja, /usr/share/ruby), já que são arquivos não compilados (que iriam para /usr/lib). Como seu aplicativo não é um aplicativo padrão, você provavelmente o colocaria em /usr/local/share evitando que ele fosse substituído por qualquer atualização do sistema.

/opt certamente também é uma possibilidade aqui.

informação relacionada