Webサーバーのルートディレクトリがデフォルトで「/var/www」にあるのはなぜですか?

Webサーバーのルートディレクトリがデフォルトで「/var/www」にあるのはなぜですか?

タキシードファイルLinuxディレクトリ構造は次のとおりです。

/var:

このディレクトリには、システムの実行中に変更される変数データが​​含まれています。

周波数ホッピングオン/var次のように教えてください。

/var可変データファイルを含みます。これには、スプールディレクトリとファイル、管理およびロギングデータ、一時ファイルと一時ファイルが含まれます。

その後、ログ、メール、スプーラなどがそのフォルダに保存されると言います。

従来、 Ubuntu LinuxにApache、Nginx、またはArchを定期的にインストールすると、ディレクトリが/var/www/

私の考えは、ファイルやその他のほぼ永続的なコンテンツを含むディレクトリを保存するのに理想的な場所ではありません。

なぜそれほど頻繁に投資するのですか/var

もっと主観的に言えば、ディレクトリ構造に基づいてこれが理想的な場所ですか?

答え1

の使い方は/var/www一見すると混乱しています。

FHSによると、Webサーバーのデータは/srv

しかし、決定の構造は/srv完全に地域管理者の責任であると述べられています!したがって、バッグには何も入れてはいけません/srv基本(Apache)パッケージはその中とその下に何があるのか/srv​​わからないので、ドキュメントルートはできません。/srvプレーンテキストのパスワードやその他のコンテンツを含むアワビリストアもあります。したがって、デフォルトのexternalが必要です/srv。デフォルト値はです/var/www

/var/www主にプレースホルダーです。パッケージは/usr/share静的HTMLコンテンツまたは/var/lib動的変数コンテンツに使用されます。多くの人々はHTMLを/var/www。だから最近、彼らは/var/www/html包装を発明しました。人々は新しいディレクトリを再作成する必要があるので、それを使用しないことを願っています。

要約:/srvそれに応じて、Apache仮想ホストを使用して構成する必要があります。

答え2

実際にはまったく「伝統的な」場所ではありません。伝統的に、オペレーティングシステムの後にインストールされたすべての項目はに入り、/usr/local実際にこれが今日まで「古典的なApacheパスレイアウト」(彼らの表現)でした。久しぶりです/home/httpd

ご覧のとおり、特定のオペレーティングシステム(Red Hat Linux、Mac OS X、GNUなど)用に設定されたApacheはこの場所をカスタマイズします。 Apacheのソースコードは、このために慎重に設計されています。実際には、ソースファイルのServerRoot値を追跡すると、そのファイルから始まるものが表示されます。config.layout:

ファイルのいくつかの抜粋を見ると、ドキュメントのルートの場所に多くの変更があることがわかります。

IIRC/var/www私はRed Hat Linux 7.x(Red Hat Enterprise Linuxではない)の2000-2001リリースで私の人生に入ってきました。上記のすべての理由で、これはあまり意味がないと思います。しかし現実は、現代の時代には、とにかく位置の移動に関連する他の多くのツールと技術があるということです。

#   Classical Apache path layout.
<Layout Apache>
    prefix:        /usr/local/apache2
    datadir:       ${prefix}

#   GNU standards conforming path layout.
#   See FSF's GNU project `make-stds' document for details.
<Layout GNU>
    exec_prefix:   ${prefix}
    datadir:       ${prefix}/share+

#   Mac OS X Server (Rhapsody)
<Layout Mac OS X Server>
    prefix:        /Local/Library/WebServer
    datadir:       ${prefix}

#   Darwin/Mac OS Layout
<Layout Darwin>
    prefix:        /usr
    datadir:       /Library/WebServer

#   Red Hat Linux 7.x layout
<Layout RedHat>
    prefix:        /usr
    datadir:       /var/www

#   SuSE 6.x layout
<Layout SuSE>
    prefix:        /usr
    datadir:       /usr/local/httpd

#   BSD/OS layout
<Layout BSDI>
    prefix:        /var/www
    datadir:       ${prefix}

#   Solaris 8 Layout
<Layout Solaris>
    prefix:        /usr/apache
    datadir:       /var/apache

答え3

私はacondの答えに同意しますが、もっと重要な側面があると思います。他のほとんどの場所は通常、システム(パッケージマネージャ)によって管理されます。/var通常、パッケージマネージャが管理していないファイル(システム全体の「データ」)の場所です。

私はまた、定義が以下に由来するものだと思います。FHSより正確に言えば(データを「継続的に変更」する必要はありません):

/ varには可変データファイルが含まれています。これには、スプールディレクトリとファイル、管理およびロギングデータ、一時ファイルと一時ファイルが含まれます。


しかし、[FHS](http://www.pathname.com/fhs/pub/fhs-2.3.html#PURPOSE16A)には、wwwデータが `/srv`に入るべきであることが示されています。

/ srvには、このシステムによって提供されるサイト固有のデータが含まれています。

これを指定する主な目的は、ユーザーが特定のサービスのデータファイルの場所を見つけることができ、読み取り専用データ、書き込み可能データ、およびスクリプト(cgiスクリプトなど)の単一ツリーを必要とするサービスを合理的に配置することです。そうすることです。 。

/ srvサブディレクトリの名前を指定するために使用される方法は、現在これを行う方法について合意がないため、指定されません。 / srvでデータを構造化する1つの方法は、プロトコルを使用することです。 ftp、rsync、www、cvs。

答え4

私の経験では(私はWeb開発者です)Webサイトのコンテンツは安定していません。動的に生成されたコンテンツはもちろん、htmlファイルも常に変更されます(修正、欠落など)。

だから私の観点では、それらは変数です。したがって、問題なく/ varディレクトリに適しています。

関連情報