Apa yang harus saya gunakan pada aplikasi Rails?

24

Apa yang akan menjadi direktori yang masuk akal dan logis untuk menyebarkan aplikasi Rails produksi saya pada sistem Linux?

Beberapa kandidat ...

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

Apa hal yang paling mencengangkan dan paling normal untuk dilakukan di sini?

(Info latar belakang - aplikasi Rails adalah kumpulan kode sisi server yang ditulis dalam Ruby bersama dengan publicdir yang berisi JavaScript, CSS, dan mungkin sedikit HTML. publicDir tersebut dipetakan ke Apache vhost. Apache menangani kode Ruby melalui modul disebut Penumpang atau mod_rails.)


Terima kasih atas bantuannya, semuanya. Saya pikir saya akan pergi dengan /opt/deployed_rails_apps. (Saya suka panjang, nama direktori ekspositori, dan penyelesaian tab.) /var/...Juga merupakan tempat yang bagus, tapi saya mendapatkan omelan keras dari IT ketika saya mencoba untuk menyebarkan barang-barang di sana. Jika itu adalah mesin saya sendiri, saya mungkin akan menggunakan /varatau /srv.

Agvorth
sumber
Anda mungkin ingin melihat pertanyaan terkait ini lainnya: serverfault.com/questions/29129/...
chmeee
pertanyaan sampingan tetapi masih terkait saya sedang mengerjakan proyek rel yang terkandung dalam direktori ~ / Documents / quotes (dan) setelah menyebarkannya, ternyata saya terkejut sekitar 6 bulan kemudian, bahwa struktur folder yang sama juga ada di / var / www / html / quotes - ketika menggunakan apakah rail menyalinnya ke folder var? Saya tidak tahu bagaimana semuanya sampai di sana dari direktori lain. bantuan apa pun akan dihargai
BKSpurgeon

Jawaban:

5

Saya pikir / opt akan menjadi tempat untuk aplikasi seperti ini. Saya setuju dengan mengikuti FHS seperti yang disarankan oleh chmeee, tapi saya tidak setuju bahwa aplikasi Rails adalah layanan per se.

Argalatyr
sumber
Sulit untuk mengatakan, sebenarnya perangkat lunak rel tidak dimasukkan dalam sistem di suatu tempat (sebagai permata atau paket), yang ingin ia tempatkan adalah struktur direktori untuk 'layanan', aplikasi sebenarnya yang menggunakan rel untuk melayani sesuatu.
chmeee
Saya tahu dia berbicara tentang aplikasi yang dibuatnya (karenanya, "aplikasi Rails"), daripada Rails sendiri. Either way, / srv tampaknya salah.
Argalatyr
7

Pada distribusi CentOS Linux (dan selanjutnya RedHat), ketika Anda menginstal paket httpd (untuk Apache 2), itu menciptakan /var/www, dan mengharapkan vhosts Anda menunjuk ke konten web Anda di sini. Vhost default biasanya dibuang /var/www/htdocs, dan situs / aplikasi selanjutnya harus dimasukkan /var/www/sitename.

Lokasi sebenarnya seharusnya tidak peduli banyak, tapi itu umum untuk melihat /opt/www/sitename, /var/www/sitename, atau hanya /opt/wwwatau /var/www.

Anda telah menyatakan beberapa alasan mengapa beberapa lokasi lain (seperti /home) tidak benar-benar cocok untuk ini.

Secara pribadi, saya lebih suka /var/www/sitenamekarena ini ramah untuk Apache dan Rails, dan sistem-lebar.

Kevin Elliott
sumber
1
Aplikasi web harus masuk / var / www, terutama jika mereka dilayani melalui sesuatu seperti server web yang tepat seperti Apache dari Lighttpd. Terlebih lagi, karena kebijakan SELinux akan diterapkan dengan benar ke aplikasi Rails di / var / www dan bukan di / opt.
wzzrd
6

Anda mungkin ingin mengikuti Filesystem Hierarchy Standard (FHS) dan letakkan di

/srv : Data for services provided by this system

EDIT:

Saya tidak akan menempatkannya di /opt:

/opt : Add-on application software packages

Tujuannya mengatakan:

/ opt dicadangkan untuk instalasi paket perangkat lunak aplikasi tambahan.

Sebuah paket yang akan diinstal di / opt harus menemukan file statis di pohon direktori / opt / atau / opt / yang terpisah, di mana adalah nama yang menggambarkan paket perangkat lunak dan merupakan nama terdaftar penyedia LANANA.

Saya tidak berpikir aplikasi yang dikembangkan adalah 'paket perangkat lunak'.

Alasannya /srvadalah

Tujuan utama menentukan ini adalah agar pengguna dapat menemukan lokasi file data untuk layanan tertentu, dan agar layanan yang memerlukan satu pohon untuk data yang hanya dapat dibaca, data yang dapat ditulis dan skrip (seperti skrip cgi) dapat ditempatkan dengan wajar.

Saya mengerti bahwa aplikasi rel adalah skrip cgi dan harus ditempatkan /srv.

chmeee
sumber
Saya tidak akan terlalu fanatik dengan apa yang dikatakan FHS. Yang paling penting adalah menjaga paket kustom Anda jauh dari file sistem operasi. Dan tempat terbaik untuk itu adalah "/ usr / local" dan "/ opt".
Andrioid
1
Saya tidak fanatik, tapi saya suka organisasi sistem file mereka. Dalam hal apapun saya setuju bahwa / usr / local dan / opt yang baik untuk paket perangkat lunak, tapi saya tidak berpikir bahwa rel app adalah paket perangkat lunak
chmeee
1
Berdasarkan apa yang dikatakan FHS, /srvsepertinya ini adalah direktori yang paling pas untuk saya. Saya menggunakan /srv/rails/application_name.
Teemu Leisti
0

Saya biasanya meletakkannya di / opt / app_name.

bidang
sumber
0

Dalam sistem berbasis debian / ubuntu aplikasi semacam itu biasanya dipasang di folder / usr / share (yaitu / usr / share / ruby), karena mereka adalah file yang tidak dikompilasi (yang akan masuk ke / usr / lib). Karena aplikasi Anda bukan aplikasi standar, Anda mungkin akan memasukkannya ke / usr / local / share agar tidak ditimpa oleh pembaruan sistem apa pun.

/ opt tentu juga kemungkinan di sini.

txwikinger
sumber
0

Saya menyimpan penyebaran saya

/home/www.example.com/application

Argumen:

Rumah akan berisi semua bagian bergerak dari satu situs web. Jika saya memiliki lebih banyak situs web, saya akan tahu di mana menemukannya.

Ivailo Bardarov
sumber