这是/etc/apache2/sites-enabled/000-default
从存储库安装 apache2 后立即获取的文件。
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>
第一部分设置了什么?对我来说,DocumentRoot 应该是 / 而不是 /var/www,这样该<Directory />
部分才会有效但我肯定是错了。
答案1
它为根目录 ('/' 在此上下文中是目录,与关闭标签无关) 以及所有目录设置权限,除非被覆盖。根目录 => 您的整个磁盘。然后它会为您的 DocRoot 覆盖它。
因此,在这个文件中,它对整个磁盘设置了非常严格的权限(AllowOverride None),然后下一个目录节专门为您的 DocRoot 打开它。
这些对 / 的限制权限也会加快速度。它允许 FollowSymLinks,这意味着 Web 服务器不必对每个目录一直到根目录执行 lstat() 调用,从而节省一些磁盘系统调用。AllowOverrideNone 还意味着您不必在这些目录中搜索 .htaccess 文件,从而减少一些(缓慢的)磁盘系统调用。请记住,对于每个请求,Web 服务器都必须考虑从内容所在的目录一直到根目录的每个目录。有了这些权限,您就可以缩短这些检查,消除对磁盘的访问,而磁盘访问是真正的敌人。