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.
ここで最も驚くべき、最も普通なことは何ですか?
(背景情報-a Railsアプリは、JavaScript、CSSを含むpublic
dirとともにRubyで記述されたサーバー側コードの束です。 、そしておそらく少しHTML。public
dirはApache vhostにマップされます。Apacheは、RubyコードをPassengerまたはmod_Rails
と呼ばれるモジュールを通じて処理します。)
助けてくれてありがとう。 /opt/deployed_Rails_apps
で行くと思います。 (私は長い、説明的なディレクトリ名とタブ補完が好きです。)/var/...
も良い場所ですが、ITから厳しく不平を言いました。そこに展開しようとしたとき。それが自分のマシンであれば、/var
または/srv
を使用できます。
/ optはapplicationの場所になると思います。 chmeeeの提案に従ってFHSに従うことに同意しますが、Railsアプリ自体がサービスであることには同意しません。
CentOS Linuxディストリビューション(およびその後RedHat)で、httpdパッケージ(Apache 2用)をインストールすると、/var/www
が作成され、vhostsがここのWebコンテンツを指すことが期待されます。通常、デフォルトの仮想ホストは/var/www/htdocs
にダンプされ、後続のサイト/アプリは/var/www/sitename
に配置する必要があります。
実際の場所はそれほど重要ではありませんが、/opt/www/sitename
、/var/www/sitename
、または単に/opt/www
または/var/www
が表示されるのが一般的です。
他の場所(/home
など)がこれに適さない理由のいくつかをすでに説明しました。
個人的には、ApacheやRailsとの親和性が高く、システム全体で使用できる/var/www/sitename
を好みます。
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
に配置する必要があることを理解しています。
私は私の展開を維持します
/home/www.example.com/application
引数:
ホームには、1つのWebサイトのすべての可動部分が含まれます。私がもっと多くのウェブサイトを持っているなら、私はそれらを見つける場所を知っています。
Debian/ubuntuベースのシステムでは、このようなアプリケーションはコンパイルされていないファイル(/ usr/libに入る)であるため、通常/ usr/shareフォルダー(つまり、/ usr/share/Ruby)にインストールされます。アプリケーションは標準のアプリケーションではないため、おそらく/ usr/local/shareに配置して、システムの更新によって上書きされるのを防ぎます。
/ optも確かに可能性があります。
通常は/ opt/app_nameに配置します。