Apache Directory
ディレクティブはDocumentRootに関連しているはずですか? VirtualHostのコンテキストで質問しますが、違いはありません。
言い換えると、それは次のようになるはずです:
<VirtualHost>
DocumentRoot /var/www
<Directory /var/www>
...
または
<VirtualHost>
DocumentRoot /var/www
<Directory />
...
どちらも機能します。 ApacheDirectorydocs と言う:
Directory-pathは、ディレクトリへの完全パス、またはワイルドカード文字列です...
...しかし、「フルパス」ステートメントと矛盾する2つの例を示しています。
ED:Apache Performance Tuningページ のFollowSymLinksとSymLinksIfOwnerMatchにも矛盾する例がありますおよびAllowOverrideセクション。
楽しみのために、Debianのデフォルトのvhostセットアップを見て、これを見つけました。
<VirtualHost *:80>
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
...
ドキュメントは正しく、<Directory>
ディレクティブはfullパスである必要があります。
最初の例は、VirtualHostsのディレクティブを構成する方法であり、ディレクティブ内のオプションをDocumentRoot
のみに適用します。 2番目の例は、ファイルシステムのルート(文字通り/
)を参照しています。
残りのディレクティブは投稿していませんが、これは通常、Apacheを投獄してアクセスを制限する方法として使用され、通常(常にではありませんが)VirtualHostsを使用してメインのApache2.conf
またはhttpd.conf
構成ファイル内に配置されます独自のDocumentRoot
ディレクトリへのアクセスを明示的に許可するため、2つはしばしば一緒に使用されます。
Apacheドキュメント から:
<Directory />のデフォルトのアクセスは、すべてのアクセスを許可することです。これは、Apache httpdがURLからマップされたすべてのファイルを提供することを意味します。これを次のようなブロックで変更することをお勧めします:<Directory /> すべて拒否する必要があります </ Directory>次に、アクセス可能にするディレクトリに対してこれをオーバーライドします。詳細は セキュリティのヒント ページを参照してください。