web-dev-qa-db-ja.com

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

Linuxディレクトリ構造のガイド によると、/usr/はアプリケーションファイル用であり、/var/は変更されるファイル用です(これは、「アプリケーションに属するファイル")。これは正しいです?

これが事実である場合、どちらを使用するかの間で少し引き裂かれます。 Webサイトはアプリケーション(いわば動的である場合)ですが、それ以外の場合は、Apacheが使用するファイルの集まりにすぎません。

デフォルトのwww dirは/var/www/にあるので、/var/websites/(または類似したもの)を使用するか、/usr/websites/を選択する必要があります。

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

更新:

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

63
Nick Bolton

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

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

/srv は、「このシステムが提供するサイト固有のデータ」用です。 -良い組み合わせのようですが、/var/wwwよりも一般的ではありません。

サイトファイルを配置する他の一般的な場所は/homeの下にあります-websiteなどの特別なユーザーを作成し、そのユーザーのホームディレクトリ(/home/websiteなど)内にファイルを配置します。 。

64
James Polley

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

28
ptman

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

更新:

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

9
womble

決定的なガイドは Filesystem Hierarchy Standard であり、/srvが適切な場所です。

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

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

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>
3
Maris B.

彼らがディスクのどこに住んでいるかはほとんど問題ではありません。それはあなたが彼らを望んでいるところです。

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

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

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

3
Michael Graff

私によると、共通のシステムゾーンにインターネットサービスを配置してはいけません。

インターネットサービス(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.)
2
Dr I