W jakim katalogu powinienem wdrożyć aplikacje Railsowe?


24

Jaki byłby rozsądny i logiczny katalog, w którym można wdrożyć moje produkcyjne aplikacje Railsowe w systemie Linux?

Niektórzy kandydaci ...

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

Co jest najmniej zadziwiającą, najbardziej normalną rzeczą do zrobienia tutaj?

(Informacje w tle - aplikacja Rails to pakiet kodu po stronie serwera napisany w języku Ruby wraz z publickatalogiem zawierającym JavaScript, CSS i może trochę HTML. Katalog publicjest mapowany na vhost Apache. Apache obsługuje kod Ruby przez moduł o nazwie Pasażer lub mod_rails.)


Dzięki za pomoc. Myślę, że idę z tym /opt/deployed_rails_apps. (Lubię długie, nazwy katalogów i uzupełnianie tabulatorów). /var/...To także dobre miejsce, ale narzekałem na IT z trudem, gdy próbowałem tam wdrażać. Gdyby to była moja własna maszyna, mógłbym iść z /varlub /srv.


Być może chcesz zobaczyć to inne powiązane pytanie: serverfault.com/questions/29129/…
chmeee

pytanie poboczne, ale nadal powiązane. Pracowałem nad projektem szynowym zawartym w katalogu ~ / Documents / quotes (katalog) i po jego wdrożeniu, ku mojemu zaskoczeniu około 6 miesięcy później, zauważyłem, że identyczna struktura folderów znajduje się również w / var / www / html / quotes - czy podczas wdrażania szyny kopiują go do folderu var? Nie mam pojęcia, jak to wszystko się tam dostało z innego katalogu. każda pomoc będzie mile
widziana

Odpowiedzi:


5

Myślę, że / opt byłoby miejscem dla takiej aplikacji . Zgadzam się z przestrzeganiem FHS, jak sugeruje chmeee, ale nie zgadzam się, że aplikacja Rails jest usługą samą w sobie.


Trudno powiedzieć, tak naprawdę oprogramowanie railsowe nie jest gdzieś zainstalowane w systemie (jako klejnot lub pakiet), to, co chce umieścić, to struktura katalogów dla „usługi”, rzeczywistej aplikacji, która używa szyn, aby coś obsłużyć.
chmeee

Zrozumiałem, że mówi o stworzonej przez siebie aplikacji (stąd „aplikacja Railsowa”), a nie o samej Rails. Tak czy inaczej, / srv wydaje się niewłaściwy.
Argalatyr

7

W dystrybucjach CentOS Linux (a następnie RedHat), kiedy instalujesz pakiet httpd (dla Apache 2), tworzy /var/wwwi oczekuje, że twoje vhosts wskazują tutaj na twoją zawartość internetową. Domyślny vhost jest zwykle zrzucany /var/www/htdocs, a kolejne witryny / aplikacje powinny być instalowane /var/www/sitename.

Rzeczywista lokalizacja nie powinno mieć znaczenia znacznie, ale to powszechne, aby zobaczyć /opt/www/sitename, /var/www/sitenameczy po prostu /opt/wwwbądź /var/www.

Podałeś już kilka powodów, dla których niektóre inne lokalizacje (jak /home) nie są do tego odpowiednie.

Osobiście wolę, /var/www/sitenameponieważ jest przyjazny dla Apache i Rails i jest ogólnosystemowy.


1
Aplikacje internetowe powinny znajdować się w katalogu / var / www, szczególnie jeśli są obsługiwane przez coś w rodzaju odpowiedniego serwera WWW, takiego jak Apache z Lighttpd. Tym bardziej, że zasady SELinuksa zostaną poprawnie zastosowane do aplikacji Railsowej w / var / www, a nie w / opt.
wzzrd

6

Możesz postępować zgodnie ze standardem hierarchii systemów plików (FHS) i umieścić go w

/srv : Data for services provided by this system

EDYTOWAĆ:

Nie umieściłbym tego w /opt:

/opt : Add-on application software packages

Jego cel mówi:

Opcja / opt jest zarezerwowana do instalacji dodatkowych pakietów aplikacji.

Pakiet do zainstalowania w / opt musi zlokalizować swoje pliki statyczne w osobnym drzewie katalogów / opt / lub / opt /, gdzie jest nazwą opisującą pakiet oprogramowania i nazwą zarejestrowaną przez dostawcę w sieci LANANA.

Nie sądzę, aby opracowana aplikacja była „pakietem oprogramowania”.

Uzasadnieniem /srvjest

Głównym celem określenia tego jest, aby użytkownicy mogli znaleźć lokalizację plików danych dla konkretnej usługi oraz aby usługi wymagające pojedynczego drzewa dla danych tylko do odczytu, zapisywalnych danych i skryptów (takich jak skrypty cgi) mogły być rozsądnie umieszczone.

Rozumiem, że aplikacja railsowa jest skryptem cgi i powinna zostać umieszczona /srv.


Nie byłbym fanatykiem tego, co mówi FHS. Najważniejsze jest, aby trzymać niestandardowe pakiety z dala od plików systemu operacyjnego. A najlepsze do tego miejsca to „/ usr / local” i „/ opt”.
Andrioid

1
Nie jestem fanatykiem, ale podoba mi się ich organizacja systemu plików. W każdym razie zgadzam się, że / usr / local i / opt są dobre dla pakietów oprogramowania, ale nie sądzę, że aplikacja
railsowa

1
Na podstawie tego, co mówi FHS, /srvwydaje mi się najbardziej odpowiednim katalogiem. Używam /srv/rails/application_name.
Teemu Leisti


0

W systemie opartym na debian / ubuntu takie aplikacje są zwykle instalowane w folderze / usr / share (tj. / Usr / share / ruby), ponieważ są to pliki nieskompilowane (które byłyby umieszczone w / usr / lib). Ponieważ twoja aplikacja nie jest standardową aplikacją, prawdopodobnie umieściłbyś ją w / usr / local / share, zapobiegając jej nadpisaniu przez jakiekolwiek aktualizacje systemu.

/ opt jest z pewnością także tutaj.


0

Trzymam moje wdrożenia

/home/www.example.com/application

Argumenty:

Strona główna będzie zawierać wszystkie ruchome części jednej witryny. Jeśli będę mieć więcej stron internetowych, będę wiedział, gdzie je znaleźć.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.