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

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

我现在正在 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>

答案1

文档根目录是 Web 服务器上的某个位置,当用户访问时,Web 服务器将从该位置提供文件http://prestashop16.dev/。所有网络可见文件都应位于该文件夹的级别或以下。

目录块允许您指定仅适用于特定目录的 Apache 配置规则。

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

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

相关内容