将 Web 文件移动到 /home/user/ 会导致使用 apache 时权限被拒绝

将 Web 文件移动到 /home/user/ 会导致使用 apache 时权限被拒绝

我最近在我的计算机上创建了一些 Linux 用户,并且按照以下方式创建了他们各自的目录,/home/my_user因此我决定将每个用户视为我的一个网站。

我将所有网站文件都移到了这个目录中,就像这样/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>

现在,这个虚拟主机配置与我位于的旧文档根路径配合得很好,/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

即便如此,当我尝试访问我的网站时,我不再收到权限被拒绝错误,但是,现在我被重定向到 apache 的默认页面而不是我的网站。

我已经不太清楚到底出了什么问题,如果有人有想法,那就太好了!

答案1

我会用mod_userdir如果我是你,在每个用户主目录中配置一个 public_html 目录。

该模块允许使用以下方式访问用户特定的目录 http://example.com/~user/句法。

如果您愿意,可以仅为部分用户启用此功能:

UserDir disabled
UserDir enabled user1 user2 user3 

有了这个,你的权限可能会更顺利,因为很可能在你的配置中,你会得到一个 SELinux 拒绝或者其他权限错误。

您通常不希望允许其他用户访问用户目录,而这正是您的方法所需要的。

相关内容