Linuxに配置したWebアプリのログファイルとデータファイルを配置するディレクトリを以下の通りにするのは一般的ですか?


ログファイル・・・/var/log/アプリ名/
データファイル・・・/var/local/アプリ名/

こちらのFHSにおけるディレクトリ構成の図を参考にしました。
http://bit.ly/yznI0D

また、他に一般的な配置先のディレクトリがあれば教えて頂けないでしょうか。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2012/01/04 17:20:29
  • 終了:2012/01/11 00:05:52

ベストアンサー

id:a-kuma3 No.2

a-kuma3回答回数4558ベストアンサー獲得回数19032012/01/09 11:50:24

ポイント50pt

配布して他の人にも使ってもらうアプリケーションだったら、質問にあるような階層が普通だと思うんですけど、Webアプリってのがねえ。

何が気になるかというと、アクセス権限です。
通常は、あるディレクトリに、ユーザのアクセス権があった場合、その階層よりも下のディレクトリには、同じアクセス権を持たせるように設計します。

Apache の Document Root が /var/www/ だったとして

アプリ … /var/www/cgi-bin/
ログ … /var/www/log/
データ … /var/www/data/

とか、ユーザが a-kuma3 だとして、

アプリ … /var/www/cgi-bin/a-kuma3/
ログ … /var/www/a-kuma3/log/
データ … /var/www/a-kuma3/data/

とか。
もしくは、/home の方に実体を持っておいて、/var/www/ からシンボリックリンク。


FHS みたいな考え方があるのは、「考え方を合わせておいた方が、楽じゃん」なわけですけど、
「楽じゃん」は、ファイルを探すだけじゃなくて、日々の運用が楽になるように、です。

ルート直下は、ディレクトリを分けるだけじゃなくて、通常はパーティションも分けます。
で、パーティション単位でバックアップを取るタイミングを変えます。

/usr や /opt は、インストールしたときだけ。
インストールは、割と楽にできるので、マシンを構築したときに、一発だけ取っておいて、その後は滅多に取らない、というのもあり得ます。

/etc は、環境設定を変更したときだけとれば良いので、毎日、バックアップを取る必要はない。
ただ、個々のマシンによって変わるかもしれないデータが含まれるので、バックアップを取った媒体のエラーなども考慮すると、ときどき取り直した方が良い。

/var は、定期的にバックアップを取ります。

/tmp は、バックアップを取りません。無くなっても良いようなファイルしか置かないから。


システム全体でのバックアップ以外にも、個別にバックアップを取りたい、という要求もあるでしょう。
Webアプリが、個人で開発しているもので、まだフィックスしていないようであれば、アプリの実体や、それが作るデータ(含む、ログ)なんかのバックアップを取りやすいように、何かのディレクトリ配下におさめておくとか。

/home/
  a-kuma3/
    z-apl/
      bin/
      data/
      log/
/var/
  www/
    cgi-bin/
      a-kuma3/ -> /home/a-kuma3/z-apl/bin/
    a-kuma3/
      data/ -> /home/a-kuma3/z-apl/data/
      log/ -> /home/a-kuma3/z-apl/log/


最後に、Apache 関係のディレクトリ構成が書いてあるページを (Fedora ですけど、ディストリビューションに依りません)。
http://hatena.gwbg.ws/dcfi

id:tyn-Market

ありがとうございました。
バックアップについても考えてみます。

2012/01/11 00:03:56

その他の回答(1件)

id:kodairabase No.1

kodairabase回答回数661ベストアンサー獲得回数802012/01/04 17:47:46

ポイント50pt

リンク先は見れませんが、それで正しいです。

念のため、'/var/local/' は '/usr/local/' にインストールされたアプリの動的データ用です。
http://www.atmarkit.co.jp/flinux/rensai/theory03/theory03b.html

id:tyn-Market

ありがとうございました。
考えがあっていて良かったです。

2012/01/11 00:03:21
id:a-kuma3 No.2

a-kuma3回答回数4558ベストアンサー獲得回数19032012/01/09 11:50:24ここでベストアンサー

ポイント50pt

配布して他の人にも使ってもらうアプリケーションだったら、質問にあるような階層が普通だと思うんですけど、Webアプリってのがねえ。

何が気になるかというと、アクセス権限です。
通常は、あるディレクトリに、ユーザのアクセス権があった場合、その階層よりも下のディレクトリには、同じアクセス権を持たせるように設計します。

Apache の Document Root が /var/www/ だったとして

アプリ … /var/www/cgi-bin/
ログ … /var/www/log/
データ … /var/www/data/

とか、ユーザが a-kuma3 だとして、

アプリ … /var/www/cgi-bin/a-kuma3/
ログ … /var/www/a-kuma3/log/
データ … /var/www/a-kuma3/data/

とか。
もしくは、/home の方に実体を持っておいて、/var/www/ からシンボリックリンク。


FHS みたいな考え方があるのは、「考え方を合わせておいた方が、楽じゃん」なわけですけど、
「楽じゃん」は、ファイルを探すだけじゃなくて、日々の運用が楽になるように、です。

ルート直下は、ディレクトリを分けるだけじゃなくて、通常はパーティションも分けます。
で、パーティション単位でバックアップを取るタイミングを変えます。

/usr や /opt は、インストールしたときだけ。
インストールは、割と楽にできるので、マシンを構築したときに、一発だけ取っておいて、その後は滅多に取らない、というのもあり得ます。

/etc は、環境設定を変更したときだけとれば良いので、毎日、バックアップを取る必要はない。
ただ、個々のマシンによって変わるかもしれないデータが含まれるので、バックアップを取った媒体のエラーなども考慮すると、ときどき取り直した方が良い。

/var は、定期的にバックアップを取ります。

/tmp は、バックアップを取りません。無くなっても良いようなファイルしか置かないから。


システム全体でのバックアップ以外にも、個別にバックアップを取りたい、という要求もあるでしょう。
Webアプリが、個人で開発しているもので、まだフィックスしていないようであれば、アプリの実体や、それが作るデータ(含む、ログ)なんかのバックアップを取りやすいように、何かのディレクトリ配下におさめておくとか。

/home/
  a-kuma3/
    z-apl/
      bin/
      data/
      log/
/var/
  www/
    cgi-bin/
      a-kuma3/ -> /home/a-kuma3/z-apl/bin/
    a-kuma3/
      data/ -> /home/a-kuma3/z-apl/data/
      log/ -> /home/a-kuma3/z-apl/log/


最後に、Apache 関係のディレクトリ構成が書いてあるページを (Fedora ですけど、ディストリビューションに依りません)。
http://hatena.gwbg.ws/dcfi

id:tyn-Market

ありがとうございました。
バックアップについても考えてみます。

2012/01/11 00:03:56
  • id:windofjuly
    うぃんど 2012/01/04 18:44:41
    >それで正しいです

    いいえ

    >一般的ですか?

    利用するソフトによって変わってくるので、
    「一般的」という言葉ではあまり現さず、
    例えば「Apache2.2+tomcat7のデフォルト構成」といった具合に、
    バージョンも含めたソフト名で求めることになります

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません