Linux
我應該將 Rails 應用程序部署到哪個目錄?
在 Linux 系統上部署生產 Rails 應用程序的合理且合乎邏輯的目錄是什麼?
一些候選人…
/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.
在這裡做的最不令人驚訝、最正常的事情是什麼?
(背景資訊——Rails 應用程序是一堆用 Ruby 編寫的伺服器端程式碼以及一個
public
包含 JavaScript、CSS 和可能還有一些 HTML 的目錄。該public
目錄映射到一個 Apache 虛擬主機。Apache 通過一個模組處理 Ruby 程式碼稱為乘客或mod_rails
。)謝謝大家的幫助。我想我會去
/opt/deployed_rails_apps
。(我喜歡長的、說明性的目錄名稱和製表符補全。)/var/...
也是一個好地方,但是當我試圖在那裡部署東西時,我收到了來自 IT 的嚴厲抱怨。如果是我自己的機器,我可能會選擇/var
or/srv
。
我認為**/opt將是這樣的應用程序**的地方。我同意按照 chmeee 的建議遵循 FHS,但我不同意 Rails 應用程序本身就是一項服務。
您可能希望遵循文件系統層次標準 (FHS)並將其放置在
/srv : Data for services provided by this system
編輯:
我不會把它放在
/opt
:/opt : Add-on application software packages
它的目的說:
/opt 保留用於安裝附加應用程序軟體包。
要安裝在 /opt 中的軟體包必須將其靜態文件定位在單獨的 /opt/ 或 /opt/ 目錄樹中,其中 是描述軟體包的名稱,並且是提供者的 LANANA 註冊名稱。
我不認為開發的應用程序是“軟體包”。
理由
/srv
是指定它的主要目的是讓使用者可以找到特定服務的數據文件的位置,並且可以合理地放置需要單個樹用於只讀數據、可寫數據和腳本(例如 cgi 腳本)的服務。
我知道 rails 應用程序是一個 cgi 腳本,應該放在
/srv
.