推奨される使用法に従って、Webサイトを/ var /または/ usr /に配置する必要がありますか?


62

よると、Linuxのディレクトリ構造上のガイド/usr/アプリケーションファイルのためのものであり、/var/変更するファイルのためのものです(私はこれを「アプリケーションに属するファイル」を意味すると仮定します)。これは正しいです?

これが事実である場合、どちらを使用するかによって少し引き裂かれます。Webサイトはアプリケーションです(いわば動的な場合)が、他の場合では、Apacheが使用するファイルのコレクションにすぎません。

デフォルトのwww dirはに存在するので、アプリケーションを使用する可能性があるため、/var/www/使用する/var/websites/(または同様のもの)か、選択する/usr/websites/必要がありますか?

これは非常に些細な質問ですが、それでも私を悩ませています。私たちの場合、私/usr/webたちのウェブサイトはすべてアプリケーションなので、私はそれに傾いています。

更新:

これは当社のWebサイト用です。共有ホスティングサーバーではないため、それらを分離したり、/home/そのような何かを心配する必要はありません。


10
質問はそれほど些細なことではないと思います。実際にはかなり良いものです。面白い。
アロンロテベール

回答:


63

FHSによれば、これ/usrshareable, read-only data-を対象としています。Webサイトを配置する場所ではありません。これは、コードを配置する場所です(たとえば、FedoraはWordpressに対してこれを行います)。FedoraのWebアセットパッケージングガイドも参照してください。

/var「可変データファイル。これには、スプールディレクトリとファイル、管理データとログデータ、一時ファイルと一時ファイルが含まれます。」-良い、しかしまだ完全ではない-しかし、多くのシステムがを使用する/var/wwwので、そこに置くのが間違っていても、あなたは良い会社にいる。

/srv「このシステムによって提供されるサイト固有のデータ」用です。-これは適切な一致のように見えますが、よりは一般的ではありません/var/www

サイトファイルを配置する他の一般的な場所は、/home- websiteなどと呼ばれる特別なユーザーを作成し、そのユーザーのhomedir(例:)内にファイルを配置することです/home/website


4
ああ、私の作品では/srv、これまで見たことがないので、彼らが作ったものだと思っていました。Redhat / CentOSのものですか?
ニックボルトン

12
デフォルトは/var/www、ディストリビューションがタッチすることを許可されていないためにのみ設定され/srvます。これは、システム管理者が構成するためのものです。だから、それは「はるかに少ない」と正しい理由です。
マイケルハンプトン

28

Filesystem Hierarchy StandardWikipedia)をご覧ください。私自身は/ srv / web / $ domain / {htdocs、logs、cgi-bin、...}を使用します。


3
私もこのようにしていますが、「www」の代わりに「httpd」というサービス名を常に使用しています。したがって、/ srv / httpd / $ domain ...または/ srv / smbd / sharename ...があります。このように、どのサービスがファイルを提供しているかを簡単に確認できます。たとえば、一部のシステムでは/ srv / nginx / $ domain
ラファエル・ルティガー14

9

Webサイトはユーザーのホームディレクトリに配置する必要があります。それらはユーザーデータであり、サイトごとに1人のユーザーによって分離される必要があり、動的コンテンツは適切なアクセス許可が与えられた場合に動的コンテンツが読み取りおよび変更する必要があるファイルを使用して、別のユーザーとして再度実行する必要があります。

更新:

共有ホスティングサーバーではないからといって、適切なセキュリティの実践に従事したり、独立した役割を独自のセキュリティゾーンに分けたりするべきではありません。


7

決定的なガイドは、それが適切な場所であると言うFilesystem Hierarchy Standard/srvです。


2
私はそのようには読みませんが、少なくともこの点に関しては曖昧であると読みます。ほとんどのウェブサイトは単に提供されるのby this systemではなく、システムのクラスター全体によって提供されます。から始まる2つの文This setup will differ from host to host.は、多くのサーバー間で共有されるファイルの場所ではないことを示唆しています。しかし、それはかなりありそうな場所です-間違いなく、より適切で/usrあり、おそらく間違いなく良いです/var
ジェームズポーリー

1
FHSが決定的なものではないと思います。Re:(ウィキペディアより):ほとんどのLinuxディストリビューションはFHSに準拠しており、FHS準拠を維持する独自のポリシーを宣言しています。ただし、Free Standards Groupのメンバーによって開発されたものを含め、大多数(2009年現在)の配布は、提案された標準に完全には準拠していません。
マイケルグラフ

6
それは標準の良いところです-たくさんの選択肢があります!:)
ジェームズポーリー

3

それらがディスク上のどこにあるかはほとんど関係ありません。欲しいところです。

私はすべてのマシンで/ wwwからそれらが実際に存在する場所へのシンボリックリンクを持っているので、マシンごとに不思議に思う必要はありません。一部の古いマシンには、ユーザーディスク用に/ u0と/ u1があり、そこにWebのものを配置しています。/ homeが直接マウントされているため、そこに移動しますが、/ wwwは常に正しい場所を指します。

また、/ usrにも/ varにも構成を入れません。/ localに移動します(これは、通常、/ u0または/ u1のどこかにあるシンボリックリンクです)。これにより、バックアップが簡単になります。ユーザーディスクをバックアップするだけです。

もちろん、私が選んだOSであるNetBSDのマスター配布サイトを持っています。このメインマシン(実際にはxenインスタンス)上でシステムを希望どおりに作成し、rsync / usrを実行します。私の人生を楽にします。


6
これは、1人で行う場合や、密接に連携してお互いの脆弱性に精通している小さなチームである場合は問題ありません。それ。あなたが大規模な操作を行っており、頻繁に新しい人を乗せている場合、このようなレイアウトで彼らをスピードアップさせるには多くの時間がかかります-FHSに固執する(または少なくとも近い)チームに参加するすべての新しい人の時間を節約します。
ジェームズポーリー

5
8つの異なるOSを使用する場合、社内標準は各OSが独自の方法よりもはるかに簡単に学習できます。
マイケルグラフ

1
@James Polley新入社員に「私たちは物を入れる」と言うのにどれくらい時間がかかり/path/we/choseますか?
ceejayoz

@ceejayoz「スタッフ」のカテゴリが2つ以上ある場合は、「スタッフ」の一部のカテゴリに追加の詳細が必要になる場合がありますが、「FHSをフォローしている」と伝える方がはるかに簡単です。
トリプリー

3

Apache WebサーバーのデフォルトWebサイトは/ var / www /にありますが、他のWebサイトを/ srv /に置くことをお勧めします

Ubuntu Server 14.04 LTSでこれに気付きました。デフォルトのapache2.confファイルにはコメントブロックが含まれています。

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>

2

私によると、共通システムゾーンにインターネットサービスを絶対に配置しないでください。

インターネットサービス(Apache / Tomcat / SSHなど)は玄関口です。これらのサービスをシステムゾーンに配置すると、いくつかの攻撃に対して脆弱になる可能性があります。

異なるサービスを別のデタッチパーティションのような安全なサンドボックスゾーンに配置した場合よりも多く。

使用できる構造の例を次に示します。

/ --> Root System --> On SDA1 --> Root and System security operator access only
 |
 | -->/usr /etc /var etc.

/SRV --> Web Root --> On SDB1 --> Web users access with minimal rights access.
 |
 |-->/srv/bin & /srv/dta
      |
      |-->/srv/bin/apache (or any other APPLICATION Binaries)
      |-->/srv/dta/SQL (or any other APPLICATION Datas like a 
                        database or web PHP files etc.)

1
「共通システムゾーン」に拡張してもらえますか?それは私が前に聞いた用語ではなく、あなたが何を意味するのか分かりません。/srv/bin状態FHS、違反すると思われる/srvデータ、バイナリではないためである
ジェームス・ポーリー

Well Commonシステムゾーンとは、アカウント、パスワード、管理者バイナリ、ライブラリなどのすべてのシステムコンポーネントを格納するOSの一部を意味します。私のインストールはFHSを完全に尊重していないことは知っていますが、OSを完全に2つの部分に分割できます。1°/-かなり修正されたシステム(更新および管理ツールのインストールを除く)2°/-アプリケーション、データ、およびUSers Homeland。この方法を使用すると、システムまたはデータで問題が発生した場合、すべてのデータが失われることはありません。
博士I

そうですか。これは理にかなっています-たとえば、ほとんどのデスクトップが別の/homeパーティションに置かれている理由です-非/homeパーティション上のすべてを吹き飛ばすことができ、ユーザーデータを失う心配はありません。+1データを分離するため。
ジェームズポーリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.