Question Dans quel répertoire dois-je déployer les applications Rails?


Quel serait un répertoire raisonnable et logique dans lequel déployer mes applications Rails de production sur un système Linux?

Quelques candidats ...

/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.

Quelle est la chose la moins étonnante, la plus normale à faire ici?

(Informations d’arrière-plan - une application Rails est un ensemble de code côté serveur écrit en Ruby avec un public dir contenant JavaScript, CSS, et peut-être un peu HTML. le public dir est mappé sur un hôte Apache. Apache gère le code Ruby via un module appelé Passenger ou mod_rails.)


Merci pour l'aide tous. Je pense que je vais y aller avec /opt/deployed_rails_apps. (J'aime les noms de répertoires d’exposant longs et la complétion par des tabulations.) /var/... C’est aussi un bon endroit, mais je suis devenu sévère en grommelant de I.T. quand j'ai essayé de déployer des choses là-bas. Si c’était ma propre machine, je pourrais aller avec /var ou /srv.


22
2017-07-08 19:08


origine


Vous voudrez peut-être voir cette autre question connexe: serverfault.com/questions/29129/… - chmeee
une question secondaire mais toujours liée, je travaillais sur un projet de rails contenu dans le répertoire ~ / Documents / quotes et, après l'avoir déployé, a constaté à ma grande surprise, six mois plus tard, que la structure de dossiers identique se trouvait également dans / var / www / html / quotes - lors du déploiement, est-ce que les rails le copient dans le dossier var? Je ne sais pas du tout comment tout cela est arrivé de l'autre répertoire. Toute aide serait appréciée - BKSpurgeon


Réponses:


je pense /opter serait l'endroit pour un application comme ça. Je suis d'accord avec le suivi de la FHS comme suggéré par chmeee, mais je ne suis pas d'accord pour dire qu'une application Rails est un service en soi.


5
2017-07-08 19:32



Il est difficile de dire que le logiciel Rails n’est pas installé quelque part dans le système (en tant que gemme ou package), ce qu’il veut placer, c’est la structure de répertoires du "service", l’application qui utilise les rails pour servir. - chmeee
J'ai reconnu qu'il parlait d'une application qu'il avait créée (d'où "une application Rails"), plutôt que de Rails elle-même. Quoi qu'il en soit, / srv semble faux. - Argalatyr


Sur les distributions CentOS Linux (et par la suite RedHat), lorsque vous installez le paquet httpd (pour Apache 2), il crée /var/wwwet attend que vos hôtes virtuels pointent vers votre contenu Web ici. Le vhost par défaut est généralement vidé dans /var/www/htdocs, et les sites / applications suivants doivent être mis en /var/www/sitename.

L'emplacement réel ne devrait pas avoir beaucoup d'importance, mais il est fréquent de voir /opt/www/sitename, /var/www/sitename, ou simplement /opt/www ou /var/www.

Vous avez déjà indiqué quelques-unes des raisons pour lesquelles certains des autres sites (comme /home) ne sont pas vraiment adaptés pour cela.

Personnellement, je préfère /var/www/sitename car il est convivial pour Apache et Rails et s’applique à l’ensemble du système.


7
2017-07-08 21:35



Les applications Web doivent aller dans / var / www, surtout si elles sont servies via un serveur Web tel que Apache of Lighttpd. D'autant plus que les stratégies SELinux seront correctement appliquées à une application Rails dans / var / www et non dans / opt. - wzzrd


Vous voudrez peut-être suivre le Norme de hiérarchie des systèmes de fichiers (FHS) et placez-le dans

/srv : Data for services provided by this system

MODIFIER:

Je ne le placerais pas dans /opt:

/opt : Add-on application software packages

Son but dit:

/ opt est réservé à l'installation de progiciels d'application complémentaires.

Un package à installer dans / opt doit localiser ses fichiers statiques dans une arborescence de répertoires / opt / ou / opt / distinct, où est un nom qui décrit le package logiciel et correspond au nom enregistré LANANA du fournisseur.

Je ne pense pas qu'une application développée est un «progiciel».

La raison d'être de /srv est

Le principal objectif de cette spécification est de permettre aux utilisateurs de trouver l'emplacement des fichiers de données pour un service donné et de placer raisonnablement les services nécessitant une seule arborescence pour les données en lecture seule, les données inscriptibles et les scripts (tels que les scripts cgi).

Je comprends qu’une application rails est un script cgi et doit être placée dans /srv.


5
2017-07-08 19:17



Je ne serais pas trop fanatique de ce que dit la FHS. Le plus important est de garder vos packages personnalisés à l'écart des fichiers du système d'exploitation. Et les meilleurs endroits pour cela sont "/ usr / local" et "/ opt". - Andrioid
Je ne suis pas fanatique, mais j'aime leur organisation de système de fichiers. Dans tous les cas, je conviens que / usr / local et / opt conviennent aux progiciels, mais je ne pense pas qu'une application rails soit un progiciel. - chmeee
Basé sur ce que dit la FHS, /srv semble être le répertoire le plus approprié pour moi. j'utilise /srv/rails/application_name. - Teemu Leisti


Je les mets habituellement dans / opt / app_name.


0
2017-07-09 03:19





Dans les systèmes basés sur debian / ubuntu, de telles applications sont généralement installées dans le dossier / usr / share (c.-à-d. / Usr / share / ruby), car ce sont des fichiers non compilés (qui iraient dans / usr / lib). Étant donné que votre application n'est pas une application standard, vous la placerez probablement dans / usr / local / share, évitant ainsi qu'elle ne soit écrasée par aucune mise à jour du système.

/ opt est certainement aussi une possibilité ici.


0
2017-07-08 23:55





Je garde mes déplacés dans

/home/www.example.com/application

Les arguments:

Accueil contiendra toutes les pièces mobiles d'un même site Web. Si j'ai plus de sites Web, je saurai où les trouver.


0
2018-01-17 07:52