我正在使用 apache 中的 UserDir 函数: http://httpd.apache.org/docs/2.0/mod/mod_userdir.html
这是我的配置:
<IfModule mod_userdir.c>
UserDir enabled user
UserDir public_html
</IfModule>
<Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes
Allow from all
Order deny,allow
</Directory
它一直生成 403 错误,拒绝访问。直到我在 /home/user 目录中添加了可执行文件,它才出现这种情况:
chmod 711 /home/user
public_html 已经有 o+r,这对于 apache 用户读取内容来说是合乎逻辑的,但为什么需要在基础文件夹上添加可执行文件?
一切正常。我只是好奇为什么会这样。
答案1
目录上的可执行位决定了目录遍历的权限。
答案2
根据常问问题
为了提供文件,Apache 必须具有操作系统授予的访问这些文件的适当权限。特别是,httpd.conf 中指定的用户或组必须能够读取将要提供的所有文件并搜索包含这些文件的目录,以及文件系统根目录下的所有父目录
这只是能够打开目录来获取文件的本质。