Apache CentOS 7 403禁止任何人?

我试图设置一个情况,我可以FTP到我的Linux CentOS 7服务器,并从我的Windows 7系统更新网站文件。 在这一点上,我可以使用vsftp(/ home / robert)来FTP到我的用户文件夹,并且Apache似乎可以用于默认网站(/ var / www / html)。 我为8080端口创build了一个虚拟主机,如果我将它指向/ var / www / 8080 / public_html,它可以正常工作,但只要我将它指向/ home / robert / public_html,它就会返回403 Forbidden。 您无权访问/在此服务器上。 apache错误日志显示

[Wed Mar 18 16:12:27.546621 2015] [core:error] [pid 21204] (13)Permission denied: [client 192.168.1.66:57090] AH00035: access to / denied (filesystem path '/home/robert') because search permissions are missing on a component of the path 

Apache的configuration文件(/etc/httpd/conf/httpd.conf)有这个条目的虚拟主机

 Listen 80 Listen 8080 # Virtual Hosts <VirtualHost *:8080> ServerName 192.168.1.10:8080 # DocumentRoot /var/www/8080/public_html DocumentRoot /home/robert/public_html </VirtualHost> 

/home/robert/public_html/index.html的权限如下

 drwxr-xr-x. 7 root root 66 Mar 9 17:16 home dr-x---rx. 15 robert robert 4096 Mar 16 22:51 robert drwxr-xr-x. 2 robert robert 23 Mar 17 23:28 public_html -rwxr-xr-x. 1 robert robert 332 Mar 17 23:28 index.html 

这似乎是一个权限问题,但我不清楚如何进行。 我是否需要将apache用户添加到我的robert个人组? selinux在这里做什么? 任何帮助,将不胜感激。 谢谢。

更新:好吧在我看来,所有的网站应该位于/ var / www /文件夹下。 看来selinux就是这样想的。 那么如何远程FTP和访问(读/写)网站文件? 比方说,我希望用户罗伯特到FTP / var / www / testweb,并能够读/写在那里的文件。 这是如何完成的?

更新:我看了答案张贴并运行下面的三个命令

 setsebool -P httpd_enable_homedirs on setsebool -P ftp_home_dir on restorecon -r -v /home 

看起来它做了一些事情,但结果是一样的。 我仍然可以FTP到用户文件夹,但网站不显示… 403错误。

更新:我也尝试运行下面的命令,但它在所有文件上出错

我跑的命令

 chcon -Rv --type=httpd_t /home/robert/public_html 

我收到错误

 chcon: failed to change context of 'index.html' to 'unconfined_u:object_r:httpd_t:s0': Permission denied 

我也使用setenforce 0closuresselinux,但我仍然有403.忠告赞赏…谢谢。

我想我明白了。 Apache正在工作,但最后的命令,使得ftp工作,同时仍然有selinux运行

 setsebool -P ftpd_full_access on 

一旦我设置,那么FTP工作,因为它应该。 所以现在我可以从我的Windows 7机器FTP,更新,发布更改我的网站文件和Apache愉快地提供内容。 哇…需要几天才能解决。 疯。 我设置另一个用户只是为了testing,它一切正常。