对于我的台式机,我希望能够在浏览器中访问主目录中的文件。
我已经将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
。这是通过网络共享一些数据的更安全的方法。