Linuxディレクトリ構造のガイド によると、/usr/
はアプリケーションファイル用であり、/var/
は変更されるファイル用です(これは、「アプリケーションに属するファイル")。これは正しいです?
これが事実である場合、どちらを使用するかの間で少し引き裂かれます。 Webサイトはアプリケーション(いわば動的である場合)ですが、それ以外の場合は、Apacheが使用するファイルの集まりにすぎません。
デフォルトのwww dirは/var/www/
にあるので、/var/websites/
(または類似したもの)を使用するか、/usr/websites/
を選択する必要があります。
これは非常に些細な質問ですが、それでも私を悩ませています。私たちの場合、私たちのウェブサイトはすべてアプリケーションなので、/usr/web
またはそのようなものに傾いています。
これは当社のWebサイト用です。これは共有ホスティングサーバーではないため、/home/
などでそれらを分離することを心配する必要はありません。
[〜#〜] fhs [〜#〜] によると、 /usr
はshareable, read-only data
用です-Webサイトを配置する場所ではありません。ここにコードを配置する必要があります(たとえば、FedoraはWordpressに対してこれを行います)。 Fedoraの web assets パッケージングガイドも参照してください。
/var
は「可変データファイルです。これには、スプールディレクトリとファイル、管理データとログデータ、一時ファイルと一時ファイルが含まれます。」 -良いですが、まだ完全ではありません-しかし、多くのシステムは/var/www
を使用するため、そこに配置するのが間違っていても、良い会社です。
/srv
は、「このシステムが提供するサイト固有のデータ」用です。 -良い組み合わせのようですが、/var/www
よりも一般的ではありません。
サイトファイルを配置する他の一般的な場所は/home
の下にあります-website
などの特別なユーザーを作成し、そのユーザーのホームディレクトリ(/home/website
など)内にファイルを配置します。 。
Filesystem Hierarchy Standard ( Wikipedia )を見てください。私自身、/ srv/web/$ domain/{htdocs、logs、cgi-bin、...}を使用しています。
Webサイトはユーザーのホームディレクトリに配置する必要があります。これらはユーザーデータであり、サイトごとに1人のユーザーによって分離される必要があります。動的コンテンツは、適切な権限を与えられた場合に動的コンテンツが読み取りおよび変更する必要があるファイルを使用して、別のユーザーとして再度実行する必要があります。
更新:
共有ホスティングサーバーではないからといって、適切なセキュリティプラクティスに従事して、独立した役割を独自のセキュリティゾーンに分けるべきではないという意味ではありません。
決定的なガイドは 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>
彼らがディスクのどこに住んでいるかはほとんど問題ではありません。それはあなたが彼らを望んでいるところです。
私はすべてのマシンの/ wwwからそれらが実際に住んでいる場所へのシンボリックリンクを持っているので、マシン間で疑問に思う必要はありません。一部の古いマシンには、ユーザーディスク用の/ u0と/ u1があり、私はそこにWebを配置しています。/homeが直接マウントされているものもあるため、そこに移動しますが、/ wwwは常に正しい場所を指します。
また、/ usrにも/ varにも構成を配置しません。それは/ localにあります(ご想像のとおり、/ u0または/ u1のどこかにあるシンボリックリンクです)。これにより、バックアップが簡単になります。ユーザーディスクをバックアップするだけです。
もちろん、私は自分の選択したOSであるNetBSDのマスター配布サイトを持っています。私は、このメインマシン(実際にはxenインスタンス)でrsync/usrを使用して、システムを希望どおりに作成します。私の生活を楽にします。
私によると、共通のシステムゾーンにインターネットサービスを配置してはいけません。
インターネットサービス(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.)