Apache 简单配置问题:设置每个用户目录权限被拒绝的问题

Apache 简单配置问题:设置每个用户目录权限被拒绝的问题

我刚刚在 Fedora 13 Beta 64 位上运行 Apache 2.2。我在设置每个用户目录时遇到了问题。目标是使 localhost/~user 映射到 /home/~user/public_html。我认为我拥有正确的权限,因为我对 /home/~user 的权限为 755,对 /home/~user/public_html/ 的权限为 755,而我对 /home/~user/public_html/ 内的所有内容的权限为 777,这些权限都是递归设置的。

我的 mod_userdir 配置如下:

<IfModule mod_userdir.c>
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
UserDir disabled root
UserDir enabled huckphin

#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
UserDir public_html

我在错误日志中看到的错误是这样的:

[Sat May 15 09:54:29 2010] [error] [client 127.0.0.1] (13)Permission denied: access to /~huckphin/index.html denied

当我以 apache 用户身份登录时,我知道 /~huckphin 不存在,这不是我想要的。我希望它访问 ~huckphin,而不是 /~huckphin。我需要在配置上进行哪些更改才能使其正常工作?

[评论后添加]

嗨,Andol,谢谢你的建议。首先,你说你假设我启用了 userdir 模块,但我不确定这到底意味着什么。这可能是问题的一部分。

我确实使用 LoadModule 指令加载了模块。我有这个:

LoadModule userdir_module modules/mod_userdir.so

我还查找了 mod_userdir 的位置,发现它位于这里:

[huckphin@crhyner-workbox]/% find / . -name '*mod_userdir.so*' 2> /dev/null
/usr/lib64/lighttpd/mod_userdir.so
/usr/lib64/httpd/modules/mod_userdir.so

我还需要启用其他东西吗?

另外,还提到了我的目录配置。我取消了给出的默认配置的注释。我还没有研究过所有配置的含义,这可能解释了这个问题。这是我的用户目录的目录:

<Directory "/home/*/public_html">
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
    Order allow,deny
    Allow from all
</Limit>
<LimitExcept GET POST OPTIONS>
    Order deny,allow
    Deny from all
</LimitExcept>
</Directory>

答案1

实际上,当 Apache 在其日志文件中引用 /~foo/ 时,它指的是 URL,而不是文件系统路径。换句话说,没有任何迹象表明它正在查看错误的位置。

我假设您还启用了 userdir 模块,而不仅仅是配置?/home/*/public_html 的目录配置怎么样?此外,/home 的文件系统权限怎么样?

答案2

我有点沮丧。我找到了答案,但那只是猜测。果然,我的配置没有任何错误。我通过转到系统 -> 管理 -> SELinux 管理(顺便说一下,我使用 GNOME 作为窗口管理器)停止了 SELinux,然后关闭了 SELinux,然后我就可以查看我的用户目录网页了。

因此,我发现 SELinux 导致了这个问题。我不确定是否要执行并强制执行专门针对 SELinux 的策略。我想这可能是另一个线程,但我已经找到了问题!

不过,还是要感谢你的帮助。它让我从不同的角度思考,帮助我得出这个结论!我很感谢你的帮助!

相关内容