Rails uygulamalarını hangi dizine yerleştirmeliyim?


24

Prodüksiyon Rails uygulamalarını Linux sistemine yerleştirmek için makul ve mantıklı bir dizin ne olabilir?

Bazı adaylar ...

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

Burada yapılacak en az şaşırtıcı, en normal şey nedir?

(Arkaplan bilgisi - Rails uygulaması Ruby'de publicJavaScript, CSS ve belki de küçük bir HTML içeren bir dir ile birlikte yazılmış bir sunucu tarafı kodudur . publicDir, bir Apache vhost ile eşlenmiştir. Yolcu ya da denilen mod_rails).


Yardımın için teşekkürler. Sanırım birlikte gideceğim /opt/deployed_rails_apps. (Uzun, açık dizin adları ve sekme tamamlamayı severim.) /var/...Aynı zamanda iyi bir yer, ancak orada bir şeyleri dağıtmaya çalıştığımda BT'den sert bir şekilde intihar etti. Kendi makinem olsaydı /varya da ile giderdim /srv.


Bu diğer ilgili soruyu görmek isteyebilirsiniz: serverfault.com/questions/29129/…
chmeee

Bir yan soru ama hala ilgili ben ~ / Documents / quotes (dizin) içinde yer alan bir raylar projesi üzerinde çalışıyordum ve konuşlandırdıktan sonra, yaklaşık 6 ay sonra aynı klasör yapısının / var / içinde olduğunu şaşırdım. www / html / quotes - dağıtım sırasında raylar var klasörüne kopyalanır mı? Hepsinin oradaki diğer dizinden nasıl geldiği hakkında hiçbir fikrim yok. herhangi bir yardım takdir edilecektir
BKSpurgeon

Yanıtlar:


5

Bence / opt bir için bir yer olacağını uygulaması böyle. Chmeee tarafından önerilen FHS’yi takip etmekle aynı fikirdeyim, ancak Rails uygulamasının kendi başına bir hizmet olduğunu kabul etmiyorum.


Aslında, raylar yazılımının sistemde bir yere (bir taş veya paket olarak) yerleştirilmiş olduğunu, yerleştirmek istediği şey, bir şey sunmak için rayları kullanan asıl uygulama olan "hizmet" için dizin yapısını oluşturmasıdır.
chmeee

Rails'in kendisinden ziyade yarattığı bir uygulamadan (bu nedenle, "bir Rails uygulaması") bahsettiğini fark ettim. Her iki durumda da, / srv yanlış görünüyor.
Argalatyr

7

CentOS Linux dağıtımlarında (ve ardından RedHat'ta), httpd paketini (Apache 2 için) yüklediğinizde, oluşturur /var/wwwve vhost'larınızın burada web içeriğinizi göstermesini bekler. Varsayılan vhost tipik olarak boşaltılır /var/www/htdocsve sonraki siteler / uygulamalar eklenmelidir /var/www/sitename.

Gerçek konumu çok önemli olmamalı, ancak sık sık fark /opt/www/sitename, /var/www/sitenameya da sadece, /opt/wwwya /var/www.

Diğer konumların bazılarının (bunun gibi /home) gerçekten buna uygun olmama nedenlerinden birkaçını daha önce söylediniz .

Şahsen, /var/www/sitenameApache ve Rails'e dost ve sistem genelinde olduğu için tercih ederim .


1
Web uygulamaları / var / www içine girmelidir, özellikle de Apigh of Lighttpd gibi uygun bir web sunucusu gibi bir şeyle sunuluyorlarsa. Dahası, SELinux politikaları / var / www içindeki ve Rails uygulamasına düzgün bir şekilde uygulanacağından / opt'de değil.
wzzrd 09.09

6

Dosya Sistemi Hiyerarşi Standardı'nı (FHS) takip etmek ve

/srv : Data for services provided by this system

DÜZENLE:

Yerine koymuyorum /opt:

/opt : Add-on application software packages

Amacı diyor ki:

/ opt, eklenti uygulama yazılımı paketlerinin kurulumu için ayrılmıştır.

/ Opt'a yüklenecek bir paket, statik dosyalarını ayrı bir / opt / veya / opt / dizin ağacında bulmalıdır, burada yazılım paketini tanımlayan bir ad ve sağlayıcının LANANA kayıtlı adıdır.

Gelişmiş bir uygulamanın 'yazılım paketi' olduğunu sanmıyorum.

Mantığı /srvDİR

Bunu belirlemenin bu ana amacı, kullanıcıların belirli servisler için veri dosyalarının konumunu bulabilmeleri ve böylece salt okunur veri, yazılabilir veri ve komut dosyaları (cgi komut dosyaları gibi) için tek bir ağaç gerektiren servislerin makul şekilde yerleştirilebilmesidir.

Bir raylar uygulamasının bir cgi betiği olduğunu ve yerleştirilmesi gerektiğini anlıyorum /srv.


FHS'nin söylediği şey hakkında çok fanatik olmayacağım. En önemlisi, özel paketlerinizi işletim sistemi dosyalarından uzak tutmaktır. Ve bunun için en iyi yerler "/ usr / local" ve "/ opt".
Andrioid

1
Fanatik değilim ama dosya sistemi organizasyonlarını seviyorum. Her durumda / usr / local ve /
opt'un

1
FHS'nin söylediğine göre, /srvbana en uygun dizin gibi görünüyor. Ben kullanıyorum /srv/rails/application_name.
Teemu Leisti 15:14


0

Debian / ubuntu tabanlı bir sistemde bu tür uygulamalar genellikle / usr / share klasörüne (yani / usr / share / ruby) yüklenir, çünkü derlenmemiş dosyalar (/ usr / lib içine girer). Uygulamanız standart bir uygulama olmadığı için, muhtemelen / usr / local / share içine koyup, sistem güncellemelerinin üzerine yazılmasını önlersiniz.

/ opt kesinlikle burada da bir olasılık.


0

Dağıtımlarımı içeride tutuyorum

/home/www.example.com/application

Argümanlar:

Home, tek bir web sitesinin tüm hareketli kısımlarını içerecektir. Daha fazla web sitem varsa, onları nerede bulacağımı bileceğim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.