Railsアプリをどのディレクトリにデプロイする必要がありますか?


24

実動RailsアプリをLinuxシステムにデプロイするための合理的で論理的なディレクトリは何でしょうか?

一部の候補者...

/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アプリは、publicJavaScript、CSS、および場合によっては少しのHTMLを含むdir とともにRubyで記述されたサーバー側コードの束ですpublic。dirはApache vhostにマップされます。Apacheはモジュールを介してRubyコードを処理しますPassengerまたはmod_rails。)


助けてくれてありがとう、すべて。私は一緒に行くと思います/opt/deployed_rails_apps。(私は長い説明的なディレクトリ名とタブ補完/var/...が好きです。)良い場所でもありますが、そこに物を展開しようとしたとき、私はITから厳しく不平を言ってきました。それは私自身のマシンだったら、私は一緒に行くかもしれません/var/srv


:あなたは、この他の関連する質問を見たいかもしれserverfault.com/questions/29129/...
chmeee

副次的な質問ですが、私は〜/ Documents / quotes(ディレクトリ)に含まれるRailsプロジェクトに取り組んでおり、それをデプロイした後、6か月後、驚いたことに同じフォルダー構造が/ var /にもあることがわかりましたwww / html / quotes-デプロイ時にRailsはそれをvarフォルダーにコピーしますか?他のディレクトリからどうやってそこにたどり着いたのかわかりません。任意の助けをいただければ
幸いです-BKSpurgeon

回答:


5

/ optは、このようなアプリケーションの場所になると思います。chmeeeが提案したFHSに従うことに同意しますが、Railsアプリ自体がサービスであることには同意しません。


言うのは難しいですが、実際にはRailsソフトウェアはシステムのどこかに(gemまたはパッケージとして)配置されていません。彼が置きたいのは、「サービス」のディレクトリ構造です。これは、レールを使用して何かを提供する実際のアプリケーションです。
chmeee

私は彼がRails自体ではなく、彼が作成したアプリ(つまり「Railsアプリ」)について話していることを認識しました。いずれにしても、/ srvは間違っているようです。
Argalatyr

7

CentOS Linuxディストリビューション(およびその後のRedHat)では、httpdパッケージ(Apache 2用)をインストールすると、が作成され/var/www、vhostsがここのWebコンテンツを指すことを期待します。通常、デフォルトのvhostはにダンプされ/var/www/htdocs、後続のサイト/アプリはに配置する必要があります/var/www/sitename

実際の場所はあまり重要ではないはずですが、それは見るために一般的です/opt/www/sitename/var/www/sitenameまたは単に、/opt/wwwまたは/var/www

他の場所の一部(など/home)が実際にこれに適さない理由については、すでにいくつか述べています。

個人的には、/var/www/sitenameApacheとRailsに友好的であり、システム全体であるため、私は好みます。


1
特に、Apache of Lighttpdのような適切なWebサーバーを介して提供される場合、Webアプリは/ var / wwwに配置する必要があります。さらに、SELinuxポリシーは/ optではなく/ var / wwwのRailsアプリに適切に適用されるためです。
wzzrd 09

6

Filesystem Hierarchy Standard(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


私はFHSの言うことについてあまり夢中にならないでしょう。最も重要なことは、カスタムパッケージをオペレーティングシステムファイルから遠ざけることです。それに最適な場所は「/ usr / local」と「/ opt」です。
アンドリオイド2009

1
私は熱狂的ではありませんが、私は彼らのファイルシステム編成が好きです。いずれにせよ、/ usr / localと/ optがソフトウェアパッケージに適していることに同意しますが、railsアプリはソフトウェアパッケージだとは思わない
chmeee 09

1
FHSの言うところによれば、/srv私にとって最もふさわしいディレクトリのようです。を使用してい/srv/rails/application_nameます。
Teemu Leisti 14年

0

通常、それらを/ opt / app_nameに配置します。


0

debian / ubuntuベースのシステムでは、これらのアプリケーションはコンパイルされていないファイル(/ usr / libに保存される)であるため、通常/ usr / shareフォルダー(つまり/ usr / share / ruby​​)にインストールされます。アプリケーションは標準アプリケーションではないので、おそらく/ usr / local / shareに配置して、システムの更新によって上書きされないようにします。

ここでも/ optが可能です。


0

デプロイを保持します

/home/www.example.com/application

引数:

ホームには、単一のWebサイトのすべての可動部分が含まれます。もっと多くのウェブサイトがあれば、どこにあるかがわかります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.