我最近在我的机器上创build了一些linux用户,他们各自的目录是通过以下方式/home/my_user
创build的,所以我决定把每个用户当作我的一个网站。
我把所有的网站文件都移到了这个目录,就像/home/my_user/public_html/
。
我编辑了我的httpd.conf
的虚拟主机,并改变了根目录文件夹,所以这是如何看起来
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/home/my_user/public_html" ServerName mywebsite.com ServerAlias www.mywebsite.com ErrorLog "/var/log/httpd/mywebsite/error_log" CustomLog "/var/log/httpd/mywebsite/access_log" common </VirtualHost>
现在这个虚拟主机configuration工作得很好,我的旧文档根path位于/var/www/html/mywebsite/public_html
但是在改变之后,我得到了一个权限被拒绝的错误。
但我按照这里的说明: https : //stackoverflow.com/questions/14427808/you-dont-have-permission-error-in-apache-in-centos
即使按照上面的说明,当我运行以下命令: sudo -u apache ls /home/my_user/public_html
服务器响应
ls: cannot open directory /home/my_user/public_html: Permission denied
即使如此,当我尝试访问我的网站时,我没有得到权限被拒绝的错误,但是,现在我被redirect到Apache的默认页面,而不是我的网站。
我不完全确定有什么问题,如果有人有一个想法,如果你们可以帮忙,这将是非常好的!
我会使用mod_userdir,如果我是你在每个用户homedir中configuration一个public_html目录。
如果您愿意,您可以只为一部分用户启用它:
UserDir disabled UserDir enabled user1 user2 user3
有了这个,你可能会有更多的运气,因为这可能是你的conf,你会得到一个SELinux拒绝或在你的权限错误之上的东西。
您通常不希望允许其他用户访问您的方法所需的用户目录。