1時間(はい、1時間)グーグルしてstackexchangeや他のいくつかのフォーラムのいくつかの投稿を閲覧した後、この答えを見つけるのは非常に困難でした... Apacheのドキュメントを通してさえ!
私はnotで、これら2つの違いが何であるかを見つけることができませんでした。さらに、Apacheについてはかなり経験がありません。
ローカルマシンにPHPおよびMySQLの開発サーバーを作成するための代替ソリューションを探していたとき、これに出くわしました。私はこのチュートリアルに従っていました:
https://mallinson.ca/osx-web-development/
...これは「VirtualDocumentRoot」について言及していますが、これがDocumentRootよりも優れている(そうですか?)理由を指定していません。
私がこれについてのドキュメントを見つけるかもしれないところへのどんなリードまたはリンクも最もありがたいです。ありがとう!
注:ドキュメントに最も近いのはDocumentRootのみでした http://httpd.Apache.org/docs/2.4/mod/core.html#documentroot
DocumentRoot は標準のApacheディレクティブです。使用されるコンテキストに応じて、グローバルドキュメントルートまたは仮想ホストのドキュメントルートを固定パスに設定します。
VirtualDocumentRoot は、Apacheモジュールmod_vhost_aliasへのディレクティブです。実際のリクエストが処理されたときに評価される変数を含む可能性のある動的パスにドキュメントルートを設定します。このように、効果的なドキュメントルートは、すべての組み合わせに対して個別の仮想ホストを定義することなく、要求された実際のホスト名とポート番号に依存できます。
DocumentRootは、構成されたVirtualHostごとに1つの値にのみ設定できます。
VirtualDocumentRootは、single仮想ホストを許可します。これは、表面上は多くの無関係なドメインのトラフィックを処理し、各ドメインが一意のドキュメントルートを指しているかのように機能します。
違いについての私の理解は、DocumentRootはApache構成ファイルで使用するためのグローバル変数のようなものであり、Webルートのグローバルルートを宣言する単一の変数であるということです。
VirtualDocumentRootは、Virtualhostを内部のネストされた変数として定義するときに使用され、単一の変数として立つことはできません。名前が示すように、仮想ホストのドキュメントルートです。
つまり、簡単に言えば、DocumentRootはApache構成のグローバルルートであり、VirtualDocumentRootは仮想ホストのルートです。