apache 不会遵循符号链接 | 403 权限被拒绝

Lau*_*Dem 5 linux apache-http-server permissions ubuntu

我使用的是 Ubuntu 14.04,并且 Apache 配置有问题:

我创建了一个符号/var/www/html链接/home/me/myWebDirectory

localhost/myWebDirectory呈现一个

403-权限被拒绝

事实上,sudo -u www-data ls /home/me/myWebDirectory也返回拒绝许可

apache2.conf 有以下指令:

<Directory /var/www>
           Options Indexes FollowSymLinks
           AllowOverride None
           Require all granted
 </Directory>
Run Code Online (Sandbox Code Playgroud)

我把它改成了<Directory /var/www/html>,但没有结果。

我尝试使用此命令添加me用户,但这也没有帮助www-data groupsudo usermod -a -G groupName userName

我错过了什么?

编辑:我将组更改/home/me/myWebDirectory为具有 rx 权限的 www-data,但也没有成功......

正如我所说,我很清楚我遇到了阅读权限问题,因为这也sudo -u www-data ls /home/me/myWebDirectory给我返回了权限被拒绝的信息(这意味着 www-data 无权查看其中的内容)。

但我需要你的回答中的某些观点更清楚:

另外,您应该使用 url“localhost/html”而不是“localhost/myWebDirectory”。

实际上我已经制作了如下符号链接:

  • cd /var/www/html
  • ln -s /home/user/me/myWebDirectory myWebDirectory

所以我认为访问localhost/myWebDirectory是正确的地址,不是吗?

chown -R www-data:www-data /var/www/html

  • 从 ubuntu 14.04 开始,Apache DocRoot 是/var/www/html为什么我应该更改它的所有者(像许多其他守护进程一样,默认为根)。
  • /localhost/testfile.html工作正常(理解测试文件位于/var/www/html
  • /localhost/phpmyadmin也可以工作,即使它是一个符号链接/usr/share(而我试图有一个符号链接/home/user......)

chmod +r /var/www/html # 给目录添加读权限

chmod +r /var/www/html/* # add read permission to files in dir
Run Code Online (Sandbox Code Playgroud)
  • 添加读取权限给谁?给我的用户?
  • 但这正是我不想做的。
  • 我实际上希望 apache 能够读取 /home/me/myWebDirectory 而不是 myUser 能够写入 apache 的目录。

注意: 我知道还有另一种方法可以做到这一点,同时激活 apache mod_userdir,这可能就是我接下来要做的。但首先我想了解如何使这个“简单”的解决方案发挥作用......

ako*_*zin 0

该问题的存在是因为缺少读取权限。执行:

# chmod +r /var/www/html  # add read permission to dir
# chmod +r /var/www/html/* # add read persmission to files in dir
# chown -R www-data:www-data /var/www/html
Run Code Online (Sandbox Code Playgroud)

另外,您的房子使用 url“localhost/html”而不是“localhost/myWebDirectory”。