Tôi nên triển khai các ứng dụng Rails nào?


24

Điều gì sẽ là một thư mục hợp lý và hợp lý để triển khai các ứng dụng Rails sản xuất của tôi trên hệ thống Linux?

Một số ứng cử viên ...

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

Điều ít ngạc nhiên nhất, bình thường nhất để làm ở đây là gì?

(Thông tin cơ bản - ứng dụng Rails là một nhóm mã phía máy chủ được viết bằng Ruby cùng với một publicthư mục chứa JavaScript, CSS và có thể là một chút HTML. Thư publicmục được ánh xạ tới một vhost Apache. được gọi là Hành khách hoặc mod_rails.)


Cảm ơn sự giúp đỡ, tất cả. Tôi nghĩ rằng tôi sẽ đi với /opt/deployed_rails_apps. (Tôi thích tên thư mục lưu trữ dài và hoàn thành tab.) /var/...Cũng là một nơi tốt, nhưng tôi đã nhận được sự càu nhàu từ CNTT khi tôi cố gắng triển khai công cụ ở đó. Nếu đó là máy của riêng tôi, tôi có thể đi cùng /varhoặc /srv.


Bạn có thể muốn xem câu hỏi liên quan khác này: serverfault.com/questions/29129/ từ
chmeee

một câu hỏi phụ nhưng vẫn liên quan tôi đã làm việc với một dự án rails có trong ~ / Documents / trích dẫn (thư mục) và sau khi triển khai nó, tôi thấy ngạc nhiên khoảng 6 tháng sau, cấu trúc thư mục giống hệt cũng nằm trong / var / www / html / ngoặc kép - khi triển khai, rails có sao chép nó vào thư mục var không? Tôi không biết làm thế nào tất cả đến đó từ thư mục khác. bất kỳ trợ giúp sẽ được đánh giá cao
BKSpurgeon

Câu trả lời:


5

Tôi nghĩ / opt sẽ là nơi dành cho một ứng dụng như thế này. Tôi đồng ý tuân theo FHS theo đề xuất của chmeee, nhưng tôi không đồng ý rằng ứng dụng Rails là một dịch vụ tự nhiên.


Thật khó để nói, thực ra phần mềm rails không được đặt trong hệ thống ở đâu đó (dưới dạng đá quý hoặc gói), thứ anh ta muốn đặt là cấu trúc thư mục cho 'dịch vụ', ứng dụng thực tế sử dụng đường ray để phục vụ một cái gì đó.
chmeee

Tôi nhận ra anh ấy đang nói về một ứng dụng do anh ấy tạo ra (do đó, "ứng dụng Rails"), chứ không phải là chính Rails. Dù bằng cách nào, / srv có vẻ sai.
Argalatyr

7

Trên các bản phân phối CentOS Linux (và sau đó là RedHat), khi bạn cài đặt gói httpd (cho Apache 2), nó sẽ tạo /var/wwwvà hy vọng rằng vhost của bạn trỏ đến nội dung web của bạn ở đây. Các vhost mặc định thường được kết xuất /var/www/htdocsvà các trang web / ứng dụng tiếp theo sẽ được đưa vào /var/www/sitename.

Vị trí thực tế nên không quan trọng nhiều, nhưng nó phổ biến để xem /opt/www/sitename, /var/www/sitenamehoặc chỉ đơn giản là /opt/wwwhay /var/www.

Bạn đã nêu một số lý do tại sao một số vị trí khác (như /home) không thực sự phù hợp cho việc này.

Cá nhân, tôi thích /var/www/sitenamevì nó thân thiện với Apache và Rails và toàn hệ thống.


1
Các ứng dụng web nên truy cập vào / var / www, đặc biệt nếu chúng được phục vụ thông qua một cái gì đó như một máy chủ web thích hợp như Apache của Lighttpd. Hơn nữa, vì các chính sách của SELinux sẽ được áp dụng đúng cho ứng dụng Rails trong / var / www và không trong / opt.
wzzrd

6

Bạn có thể muốn tuân theo Tiêu chuẩn phân cấp hệ thống tập tin (FHS) và đặt nó vào

/srv : Data for services provided by this system

CHỈNH SỬA:

Tôi sẽ không đặt nó vào /opt:

/opt : Add-on application software packages

Đó là mục đích nói:

/ opt được dành riêng cho việc cài đặt các gói phần mềm ứng dụng bổ trợ.

Gói được cài đặt trong / opt phải định vị các tệp tĩnh của nó trong cây thư mục / opt / hoặc / opt / riêng biệt, trong đó có tên mô tả gói phần mềm và là tên đã đăng ký LANANA của nhà cung cấp.

Tôi không nghĩ một ứng dụng được phát triển là "gói phần mềm".

Lý do cho /srv

Mục đích chính của việc xác định điều này là để người dùng có thể tìm thấy vị trí của các tệp dữ liệu cho dịch vụ cụ thể và để các dịch vụ yêu cầu một cây duy nhất cho dữ liệu chỉ đọc, dữ liệu có thể ghi và tập lệnh (như tập lệnh cgi) có thể được đặt một cách hợp lý.

Tôi hiểu rằng một ứng dụng rails là một tập lệnh cgi và nên được đặt trong /srv.


Tôi sẽ không quá cuồng tín về những gì FHS nói. Điều quan trọng nhất là để các gói tùy chỉnh của bạn tránh xa các tệp hệ điều hành. Và những nơi tốt nhất cho điều đó là "/ usr / local" và "/ opt".
Andrioid

1
Tôi không cuồng tín, nhưng tôi thích tổ chức hệ thống tập tin của họ. Trong mọi trường hợp, tôi đồng ý rằng / usr / local và / opt là tốt cho các gói phần mềm, nhưng tôi không nghĩ rằng ứng dụng rails là gói phần mềm
chmeee

1
Dựa trên những gì FHS nói, /srvcó vẻ như là thư mục phù hợp nhất với tôi. Tôi đang sử dụng /srv/rails/application_name.
Teemu Leisti


0

Trong hệ thống dựa trên debian / ubfox, các ứng dụng như vậy thường được cài đặt trong thư mục / usr / share (tức là / usr / share / ruby), vì chúng là các tệp không được biên dịch (sẽ đi vào / usr / lib). Vì ứng dụng của bạn không phải là một ứng dụng tiêu chuẩn, có lẽ bạn sẽ đặt nó vào / usr / local / share để ngăn chặn nó bị ghi đè bởi bất kỳ cập nhật hệ thống nào.

/ opt chắc chắn cũng là một khả năng ở đây.


0

Tôi giữ các triển khai của tôi trong

/home/www.example.com/application

Các đối số:

Trang chủ sẽ chứa tất cả các bộ phận chuyển động của một trang web. Nếu tôi có nhiều trang web hơn, tôi sẽ biết nơi để tìm thấy chúng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.