apache2 for mac os x中的DocumentRoot和Directory有什么区别

Mg *_* Gm 7 apache-2.2

我现在在 Mac OS 10.9.2 的本地环境中设置虚拟主机我正在从另一个配置复制它。我的问题是,DocumentRoot 和 Directory 之间有什么区别,它们必须匹配吗?我是否必须在 VirtualHost 配置中包含 Directory?

<VirtualHost *:80>
   DocumentRoot "/Users/memyselfandi/websites/prestashop16.dev"
   ServerName prestashop16.dev

   ErrorLog "/private/var/log/apache2/prestashop16.local-error_log"
   CustomLog "/private/var/log/apache2/prestashop16.local-access_log" common

   <Directory "/Users/memyselfandi/websites/workspace/dev">

                            AllowOverride All
                            Order allow,deny
                            Allow from all
    </Directory>

 </VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Kei*_* B. 11

DocumentRoot是您的 Web 服务器上的位置,如果用户访问http://prestashop16.dev/,Web服务器将从该位置提供文件。您的所有 Web 可见文件都应处于或低于该文件夹的级别。

目录块,您可以指定应只适用于特定目录的Apache配置规则。

<Directory>根据 Apache 文档,两者不必匹配,并且可以将块放置在 VirtualHost 块中或一般服务器配置中。

此外,您可以有多个目录块。例如,如果您的 DocumentRoot 是var/www并且您想限制对/var/www/private您的访问,您可以创建<Directory /var/www/private></Directory>块并将所需的安全配置放在那里,而不会影响其他文件夹。