我最近从 Ubuntu 转到 Fedora。现在我真希望自己早点这么做,因为我意识到我对 Linux 的了解还远远不够——Ubuntu 向我隐藏了很多东西。
以前在 Ubuntu 上,我有几个虚拟主机指向用户主目录中的目录:
/home/foo/Code/PHP/somedir/
以下是其中一个虚拟主机:
<VirtualHost *:80>
DocumentRoot /home/foo/Code/PHP/somedir
<Directory /home/foo/Code/PHP/somedir/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
ServerName database.dev
</VirtualHost>
database.dev
我已经在我的 hosts 文件中进行了设置。
我目前所做的:
添加虚拟主机后(添加到/etc/httpd/conf.d/database.dev.conf
- 这是正确的地方吗?),我重新启动了 Apache。我收到了一些 SELinux 警告,并使用 Fedora 附带的工具对其进行了故障排除。重新启动 Apache 或http://database.dev/
在浏览器中查看时,我不再收到 SELinux 警告。但是,我仍然收到 403 错误。
在 的 DocumentRoot 中database.dev
,我创建了一个名为“hello.txt”的文件,并尝试在浏览器中访问它。尝试使用文件权限和所有权没有任何效果。以下是错误日志中的一段代码:
[Sat Dec 31 20:20:34 2011] [error] [client 127.0.0.1] (13)Permission denied: access to /hello.txt denied
[Sat Dec 31 20:20:38 2011] [error] [client 127.0.0.1] (13)Permission denied: access to /hell2o.txt denied
(“hell2o.txt”不存在,“hello.txt”存在)。
问题:如果有人知道这个问题的解决方案,请分享。如果您有在 Fedora (16) 上设置 Apache 的指南 - 请也分享一下,我找不到任何特定于 Fedora 的内容。任何针对以前的 Ubuntu 用户量身定制的内容都会是额外的奖励。
答案1
你能描述一下你所做的“玩弄文件权限”吗?
为了实现此功能,您需要让运行 Apache 的用户具有遍历文件所有目录的权限,以及读取文件本身的权限。
其中一个权限是错误的,或者您仍然遇到 SELinux 问题。
答案2
根据您指出的错误和本指南中的类似错误,它仍然感觉与 SELinux 有关。从未来的配置中完全排除它的唯一方法是禁用 SELinux 并设置 Apache。确保一切正常。然后将其重新打开。如果错误开始重新出现,那么您显然已经找到了罪魁祸首。
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:第20章Apache Web 服务器