对于我的台式机,我希望能够在浏览器中访问主目录中的文件。
我已经将ApacheDocumentRoot设置为我的主页,但从逻辑上讲,我得到了一个被禁止的页面。我试图在我的组中添加www-data用户,结果相同。
我不想让我的家中的任何用户完全访问。
那么我应该如何让apache读取我的home dir呢?

$ ls -la /home | grep gael

drwxr-xr-x 44 gael    gael     4096 mars  17 22:30 gael

$ groups www-data;
www-data : www-data gael

错误日志:
  [Tue Mar 17 22:43:06.592819 2015] [authz_core:error][pid 4572] [client 127.0.0.1:59677]
 AH01630: client denied by server configuration: /home/gael/

apache配置:
<VirtualHost *:80>
    DocumentRoot /home/gael/
</VirtualHost>

最佳答案

确保运行webserver的用户对他们需要查看的所有文件都具有完全的read权限。他们还需要execute权限才能进入任何目录。
因此,您似乎已经将www-data用户添加到您自己的组中,这应该可以实现上述功能。
请注意,新的组成员身份不会立即生效:交互式用户需要再次登录,守护进程需要重新启动(因此:重新启动apache)。w32方式(只需重新启动)也可以工作。
顺便说一句,通过web服务器公开你的家似乎是个坏主意:任何可以访问web服务器的人(通常是同一个网络上的任何人)都可以看到你的主目录。确保添加了额外的安全性(密码保护、加密等)。
顺便说一句,你知道吗,传统上web浏览器会将~/public_html目录导出为~<user>(因此,如果你的登录名是“gael”,你可以通过http://localhost/~gael/访问该目录)。如果目录不存在,只需创建它,并确保将其组设置为www-data。这是通过网络共享一些数据的更安全的方法。

10-07 19:45
查看更多