设置指向用户目录中文件的 Apache 虚拟主机。在 Ubuntu 上运行良好,现在我在 Fedora 上

设置指向用户目录中文件的 Apache 虚拟主机。在 Ubuntu 上运行良好,现在我在 Fedora 上

我最近从 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 服务器

相关内容