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 public
diretório contendo JavaScript, CSS e talvez um pouco de HTML. O public
diretó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 /var
ou /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/www
e 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/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
porque é 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.