2

我正在使用新的 CentOS 6.3 最小安装并安装了新的 httpd

当我转到我的虚拟主机时,它向我显示 apache 测试页面,然后如果我转到 mydomain.co.uk/index.html (我刚刚设置为测试)它说禁止。对此的所有通常答案似乎都不起作用,老实说,我浏览了大量论坛和其他人的问题/答案,似乎没有什么对我有用。

我创建了一个名为 'www' 的组,我已将用户 'apache' 添加到.. 这是我在 httpd.conf 文件中的根目录,我将其保持打开状态只是为了进行测试:

<Directory />
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from All
</Directory>

这是我的虚拟主机文件:

NameVirtualHost *:80

<VirtualHost *:80>
  DocumentRoot /var/www/html/
</VirtualHost>

<VirtualHost *:80>
  ServerName domain.co.uk
  ServerAlias www.domain.co.uk
  DocumentRoot /home/domain/public_html
  <Directory "/home/domain/public_html">
    Options Indexes FollowSymLinks ExecCGI
    AllowOverride AuthConfig FileInfo
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

从 /home/ 开始,我将组设置为 www

当 ls -lA 在主文件夹上时,我得到

drwxrwsr-x.   5 root www   4096 Feb  5 20:57 home

我在日志文件中遇到的错误是权限错误:

[Wed Feb 06 10:24:42 2013] [error] [client 62.254.7.226] (13)Permission denied: access to /index.html denied (filesystem path '/home/domain/public_html/index.html') because search permissions are missing on a component of the path

与该文件夹中的其他所有内容一样。我真的不知道下一步该尝试什么。我已经到了需要询问我的具体设置的地步,因为遵循其他教程或答案对我不起作用。任何帮助是极大的赞赏!

4

2 回答 2

2

错误 13 表示您的 apache 配置 (httpd.conf) 中指定的用户/组没有访问文件的权限。这些文件以及它们上面的所有目录都需要具有允许该用户和组的权限。

更棘手的一点是扩展权限。如果您正在运行 selinux,服务器用户可能会因为文件的扩展权限而被拒绝。要检查这一点,请运行(从命令行):

setenforce 0

如果问题消失(即页面可见),那么您的扩展权限将阻止访问。

有关详细信息,请参阅http://wiki.apache.org/httpd/13PermissionDenied

于 2013-05-27T14:25:43.437 回答
1

Selinux 不希望 http 服务器访问 /home/domain 下的文件,因为它不是标准路径。

您可以使用以下命令更改它:

chcon -R --type=httpd_sys_rw_content_t /home/domain/public_html/
于 2015-01-18T22:58:24.447 回答