Frage In welche Richtung sollte ich Rails-Apps implementieren?


Was wäre ein sinnvolles und logisches Verzeichnis, in dem meine Produktions-Rails-Anwendungen auf einem Linux-System bereitgestellt werden?

Einige Kandidaten ...

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

Was ist die am wenigsten erstaunliche, normalste Sache hier zu tun?

(Hintergrundinfo - eine Rails App ist ein Haufen serverseitiger Code, der in Ruby zusammen mit einem public Dir enthält JavaScript, CSS und vielleicht ein wenig HTML. Das public dir ist ein Apache vhost zugeordnet. Apache behandelt den Ruby-Code über ein Modul namens Passenger oder mod_rails.)


Danke für die Hilfe, alles. Ich denke, ich werde mitgehen /opt/deployed_rails_apps. (Ich mag lange, expository Verzeichnisnamen und Tab-Abschluss.) /var/... Es ist auch ein guter Ort, aber ich habe ein ernstes Murren von I.T. als ich versucht habe, Sachen dort zu deployen. Wenn es meine eigene Maschine wäre, könnte ich mitgehen /var oder /srv.


22
2017-07-08 19:08


Ursprung


Möglicherweise möchten Sie diese andere verwandte Frage sehen: serverfault.com/questions/29129/ ... - chmeee
eine Nebenfrage, aber immer noch verwandt Ich arbeitete an einem Rails-Projekt in den ~ / Documents / quotes (Verzeichnis) und nach der Bereitstellung, fand zu meiner Überraschung 6 Monate später, dass die identische Ordnerstruktur auch in / var / www / html / quotes - wenn rails deployed es in den var-Ordner kopieren? Ich habe keine Ahnung, wie es aus dem anderen Verzeichnis kam. jede Hilfe würde geschätzt werden - BKSpurgeon


Antworten:


Meiner Ansicht nach / opt wäre der Ort für ein Anwendung so was. Ich stimme der Einhaltung der FHS zu, wie von chmeee vorgeschlagen, aber ich stimme nicht zu, dass eine Rails App eine Dienstleistung an sich ist.


5
2017-07-08 19:32



Es ist schwer zu sagen, eigentlich ist die Rails-Software irgendwo im System (als Schmuckstück oder Paket), was er platzieren will, ist die Verzeichnisstruktur für den 'Service', die eigentliche Anwendung, die Rails benutzt, um etwas zu servieren. - chmeee
Ich habe erkannt, dass er über eine App spricht, die er erstellt hat (daher "eine Rails App") und nicht über Rails selbst. In beiden Fällen scheint / srv falsch zu sein. - Argalatyr


Auf CentOS-Linux-Distributionen (und später RedHat), wenn Sie das httpd-Paket (für Apache 2) installieren, erstellt es /var/wwwund erwartet, dass Ihre vhosts hier auf Ihren Webinhalt zeigen. Der Standard-vhost wird normalerweise in den Dump-Modus versetzt /var/www/htdocsund nachfolgende Websites / Apps sollten eingefügt werden /var/www/sitename.

Der tatsächliche Standort sollte nicht viel ausmachen, aber es ist üblich zu sehen /opt/www/sitename, /var/www/sitename, oder einfach /opt/www oder /var/www.

Sie haben bereits einige der Gründe angegeben, warum einige der anderen Standorte (wie /home) sind dafür nicht wirklich geeignet.

Persönlich bevorzuge ich /var/www/sitename da es zu Apache und Rails freundlich ist und systemweit ist.


7
2017-07-08 21:35



Web-Apps sollten in / var / www gehen, besonders wenn sie über einen Webserver wie Apache von Lighttpd bedient werden. Dies umso mehr, als SELinux-Richtlinien in / var / www und nicht in / opt korrekt auf eine Rails-App angewendet werden. - wzzrd


Vielleicht möchten Sie dem folgen Dateisystem-Hierarchie-Standard (FHS) und lege es hinein

/srv : Data for services provided by this system

BEARBEITEN:

Ich würde es nicht hineinlegen /opt:

/opt : Add-on application software packages

Sein Zweck sagt:

/ opt ist für die Installation von Add-on-Anwendungssoftwarepaketen reserviert.

Ein Paket, das in / opt installiert werden soll, muss seine statischen Dateien in einem separaten / opt / or / opt / -Verzeichnisbaum finden. Dabei handelt es sich um einen Namen, der das Softwarepaket beschreibt und der LANANA-registrierte Name des Providers ist.

Ich glaube nicht, dass eine entwickelte Anwendung ein "Softwarepaket" ist.

Die Begründung für /srv ist

Der Hauptzweck der Angabe besteht darin, dass Benutzer den Speicherort der Datendateien für einen bestimmten Dienst finden und dass Dienste, die einen einzelnen Baum für schreibgeschützte Daten, schreibbare Daten und Skripts (z. B. CGI-Skripts) benötigen, sinnvoll platziert werden können.

Ich verstehe, dass eine Rails-App ein CGI-Skript ist und in diesem platziert werden sollte /srv.


5
2017-07-08 19:17



Ich wäre nicht zu fanatisch über das, was die FHS sagt. Am wichtigsten ist es, Ihre benutzerdefinierten Pakete von den Betriebssystemdateien fernzuhalten. Und die besten Plätze dafür sind "/ usr / local" und "/ opt". - Andrioid
Ich bin nicht fanatisch, aber ich mag ihre Dateisystem-Organisation. In jedem Fall stimme ich zu, dass / usr / local und / opt für Softwarepakete geeignet sind, aber ich denke nicht, dass eine Rails-App ein Softwarepaket ist - chmeee
Basierend auf dem, was die FHS sagt, /srv scheint mir das passendste Verzeichnis zu sein. Ich benutze /srv/rails/application_name. - Teemu Leisti


Normalerweise lege ich sie in / opt / app_name.


0
2017-07-09 03:19





Im debian / ubuntu basierten System werden solche Anwendungen normalerweise im Ordner / usr / share installiert (d. H. / Usr / share / ruby), da es sich um nicht kompilierte Dateien handelt (die in / usr / lib gehen). Da Ihre Anwendung keine Standardanwendung ist, würden Sie sie wahrscheinlich in / usr / local / share ablegen, um zu verhindern, dass sie von Systemaktualisierungen überschrieben wird.

/ opt ist sicherlich auch eine Möglichkeit hier.


0
2017-07-08 23:55





Ich halte meine Einsätze in

/home/www.example.com/application

Die Argumente:

Home enthält alle beweglichen Teile einer einzelnen Website. Wenn ich mehr Websites habe, werde ich wissen, wo ich sie finden kann.


0
2018-01-17 07:52