Em que dir devo implantar aplicativos Rails?

22

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 .

    
por Agvorth 08.07.2009 / 21:08

6 respostas

5

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.

    
por 08.07.2009 / 21:32
7

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.

    
por 08.07.2009 / 23:35
5

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 .

    
por 08.07.2009 / 21:17
0

Eu normalmente os coloco em / opt / app_name.

    
por 09.07.2009 / 05:19
0

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.

    
por 09.07.2009 / 01:55
0

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.

    
por 17.01.2017 / 08:52