Rails アプリをどのディレクトリにデプロイすればよいですか?

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.

ここで行う最も驚くべきことではなく、最も普通のことは何でしょうか?

public(背景情報 - Rails アプリは、JavaScript、CSS、場合によっては少しの HTML を含む dirとともに、Ruby で記述された一連のサーバー側コードです。このpublicdir は Apache vhost にマップされます。Apache は、Passenger またはと呼ばれるモジュールを通じて Ruby コードを処理しますmod_rails。)


皆さん、助言をありがとうございました。 を使うつもりです/opt/deployed_rails_apps。 (私は長くて説明的なディレクトリ名とタブ補完が好きです。)/var/...も良い場所ですが、そこに何かを展開しようとすると IT から厳しい苦情を受けました。自分のマシンであれば、/varまたはを使うかもしれません/srv

答え1

私は思う/optは、応用このように。chmeee が提案した FHS に従うことには同意しますが、Rails アプリ自体がサービスであるという点には同意しません。

答え2

フォローしたい方はファイルシステム階層標準 (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

答え3

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

実際の場所はそれほど重要ではありませんが、 、 、または単に や がよく/opt/www/sitename/var/www/sitenameられ/opt/wwwます/var/www

/home他の場所 (など) がこれに適していない理由のいくつかはすでに述べられています。

/var/www/sitename個人的には、 Apache や Rails と相性がよく、システム全体に適用できるため、こちらを好みます。

答え4

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

/opt も確かにここで可能です。

関連情報